天天看點

java基礎知識點

1.java語言的三種技術架構J2EE企業版     J2SE标準版   J2ME小型版

2.jvm java virtual machine  虛拟機依賴平台

3.java語言的環境搭建JRE java運作環境是以裡面涵蓋虛拟機jvm   。JDK java開發工具是以裡面包含JRE  是以JDK下的開發的java 程式要JRE運作

4.配置環境path最好在前面。或者JAVA_HOME輸入java目錄,然後再path下面寫%JAVA_HOME%/bin

5..java是源檔案 .class是執行檔案

6.java語言組成:關鍵字,标示符,注釋,常量和變量,運算符,語句,函數,數組

7.常量分為整數常量,小數常量,布爾常量,字元常量,null常量

8.負數的2進制轉化,就是講整數的2進制取反0變1,1變0

9.資料類型分基本資料類型和引用資料類型

10.\b是倒退

11.右移變小,左移變大

12.for和while可以進行互換,如果需要定義循環增量,用for合适

13.overload在同一個類中,允許一個以上同名函數,其參數表不一樣的就可以用重載

14.棧記憶體資料使用完畢,會自動釋放一般都是局部變量。堆記憶體中每一個實體都有一個位址

15.利用數組表和stringbuffer可以輕松實作字元轉化

16.static是一個修飾符,用于修飾成員,(成員變量和成員函數和類)

17.主函數是一個特殊的函數。作為程式的入口,可以被jvm調用,

18.靜态代碼塊随着類的加載而執行,隻執行一次,用來給類進行初始化

19.設計模式:23種設計模式。解決某一類問題最行之有效的方法

20.單例設計模式。想要保證對象唯一,為了避免其他程式過多建立該類對象先控制禁止其他程式建立該對象,還為了讓其他程式可以通路到該類對象,隻好在本類中自定義對象,為了放了友善對自定義對象的通路。可以對外提供一些通路方式

代碼展現:1将構造函數私有化,2在類中建立一個本類的對象,3提供一個方法可以擷取該對象

21.内部類可以直接通路外部類中的成員,外部内要通路内部類先要建立對象。

22.通路格式:當内部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中,可以直接建立内部類對象。格式:内部類變量名=外部類.内部類對象

23.當描述事物時,事物的内部還有事物,該事物用内部類來描述。

24.局部内部類不能修飾靜态方法

25.定義匿名内部類的前提内部類必須繼承一個或者實作接口。其格式是:new 父類或者接口,其實匿名類就是一個匿名子類對象,而且這個對象有點胖。可以了解為帶内容的對象。匿名對象隻能調用一次.

26.throwable是error 和exception的超類

27.對多異常的處理,申明異常時,建議申明更為具體的異常,這樣處理更加具體.

28.自定義異常需求:在本程式中,對于除數是-1,也視為是錯誤的是無法進行運算的

那麼就需要自定義異常

29.當在函數内部出現了throw 抛出異常對象,要麼就必須要對應要給對應的處理動作

要麼在内部try,catch處理

30Throw 和throws的差別

throw是使用在函數内的   throws在函數上使用

throw後面跟的是異常對象   throws後面跟的異常類,可以跟多個,用逗号隔開

31異常的三種合适1try{}catch(){}2try{}catch(){}finall 3try{}finally{}

32包與包之間進行通路,被通路的包中的類以及類中的成員,需要public修飾

不同包中的子類還可以直接的通路父類中被protected權限修飾的成員

包與包之間可以使用的權限有兩種,public protected。

         Public       protected         default      private

同一個類中  ok          ok               ok          ok

同一個包中  ok          ok               ok    

子類        ok          ok

不同包中    ok

33.同步的前提:(1)必須要有兩個或者兩個以上的線程才需要同步。(2)必須是多個線程使用同一個鎖。好處是:解決多線程的安全問題。缺點是消耗資源.,越安全越慢

34同步函數使用的鎖是this。

35同步函數被靜态修飾後,用的不在是this鎖。靜态進記憶體中沒有本類對象,但是一定有該類的位元組碼對象。

36.Wait,notify,notifyall都使用在同步中,因為要對持有螢幕的線程操作,是以要使用在同步中,因為隻有同步才具有鎖

為什麼這些操作線程的方法要定義在object中。因為這些方法在操作同步中線程中都必須要标示他們所操作線程隻有的鎖。隻有同一個鎖上的被等待線程,可以被同一個鎖上notify喚醒。不可以對不同鎖中的線程進行喚醒也就是說等待和喚醒必須是用一個鎖。而鎖可以是任意對象,是以可以被任意對象調用的方法定義object類中。

37.java更新無外乎3個方面。1提高效率 2簡化書寫3提高安全性。開發建議使用stringBuilder

38collection包括list和set 。list有arraylist ,linkedlist,vector。Set有hashset和treeset

39. 集合中存儲都是對象的位址(引用)

40.list和set的差別

List是有序的,元素可以重複 set是無序的,元素不可以重複

41.list特有的疊代器

如果想要其他的操作,如添加,修改,就需要其子接口,就必須通過list 的ListIterator擷取。

42. arraylist 低層是數組結構這個查找快說,linklist低層是連結清單。增删很快, vector 低層是數組資料結構

*arraylist比vector節省空間

Voctor中的枚舉和疊代器是一樣。枚舉的名稱以及方法的名稱都過長。是以被疊代器取代了。是以枚舉後就沒人使用了。

43.linklist的特有方法getfirst(),getlast(),removefrist(),removelast

44.hashset資料結構是哈希表,線程是非同步的。保證唯一性的原理,判斷元素的hashcode值是否相同,還會繼續判斷元素的equals方法。

45.tree可以對set集合中的元素進行排序.在自定義方法的時候可以用這個設計自己的排序規則.低層是二叉樹.

46.jdk1.5版本以後出現新特性,用于解決安全問題,是一個安全機制。

好處是:1将運作時期出現的問題,轉移到編譯時期友善于程式員解決問題,讓運作事情問題減少,安全。 2便面了轉換的麻煩

47hashtable 低層是哈希表,不可以存入NULL鍵null值,該集合是和線程同步的,jdk1.0效率低

Hashmap低層是哈希表,允許使用null值和null鍵,該集合是不同步,jdk1.2的效率高

Treemap:低層是二叉樹結構。線程不同步,可以用于給map集合中的鍵進行排序

48.當資料之間存在映射關系的時候就采用map集合

49.arrays用于操作數組的工具類,裡面都是靜态方法。

50.為什麼要将集合變數組。為了限定對元素的操作。

51.for循環的增強,靜态導入,可變參數

52.system的屬性和方法都是靜态的

Out是标準輸出預設是控制台,in是标準輸入,預設的是鍵盤

53.runtime該類中并沒有提供構造函數。說明不可以new對象。那麼會直接想到該類中的方法都是靜态的發現該類中會有非靜态方法。說明該類肯定有提供方法擷取本類的對象,而且方法是靜态的。

54.ceil方法的特點傳回大于指定資料的最小整數

Floor傳回小于指定資料的最大整數

Round四舍五入

55.找到一個專門用于操作檔案的FileWriter。字尾名時類型,字首名是功能。如果該目錄下沒有則建立。如果有則覆寫。當write寫入後沒有寫人,隻是寫到流記憶體中也可以說流中。是以要記得flush,close。這樣就可以寫入檔案中。Close關閉流資源。但是關閉的時候會關閉緩沖的資料,将資料刷到目的地中和flush的差別在flush重新整理後流可以繼續使用。在外面建立變量在裡面try建立對象。

FileWriter和filereader是字元流的。

56緩沖區的出現是為了提高流的操作效率而出現的。是以在建立緩沖區,必須要先有流對象。該緩沖區提供了一個跨平台的newline方法。

Readline方法的原理無論是讀一行還是讀取多個字元。是以最終使用的read方法還是一次讀一個方法。

57裝飾設計模式

當想對自己的對象進行功能增強時,可以定義類将已有的對象傳入,基于已有的功能,并且提供增強功能。那麼自定義的該類稱為裝飾類。

58.裝飾模式和繼承

裝飾模式比繼承要靈活,避免了體系臃腫。而且降低了類與類之間的關系、

裝飾模式因為增強已有的對象,具備了功能和已有的是相同的隻不過是增強了功能。是以修飾類和被裝飾類通常都是屬于一個體系中的

59.流式布局預設是中間flowlayout 。borderLayout邊界式布局。GridLayout表格式布局。

Cardlayout卡片布局。Gridbaglayout網格布局非規則的。

60.示範UDP傳輸

首先用Datagramsocket建立服務,然後建立一個datagrampacket建立資料包用來接收和發送就可以了。最後關閉服務。

61.示範TCP傳輸

Tcp分用戶端和服務端

用戶端對應socket 伺服器端對應serverSocket

用戶端通過查閱socket對象,發現在該對象監理師,就可以去連接配接指定主機、

因為tcp是面向連接配接,是以在建立socket服務時,就要有服務端存在,并連接配接成功,形成通路後,在該通道進行資料傳輸。

服務端

定義端點的接受資料并列印在控制台上

1建立服務端的seversocket();

并監聽一個端口。

通過serversocket的accept方法,是以這個方法是阻塞式的沒有連接配接就會等

3用戶端如果發過來資料,那麼服務端要使用對應的用戶端對象,并擷取該用戶端對象的讀取流來讀取發過來的資料。

4關閉服務端

62.用戶端和伺服器的雙向交流

用戶端

1.建立socket服務,指定要連接配接主機的端口

2.擷取socket流中的輸出流。将資料寫到該流中,通過網絡發送給伺服器

3.擷取socket流中的輸入流。将伺服器回報的資料擷取到,并列印、

4.關閉用戶端資源

伺服器端

63.想要将主機名翻譯成為Ip位址,需要解析域名。DNS

64.正規表達式:符合一定規則的表達式

作用:用于專門操作字元串

特點:用于一些特定的符号來表示一些代碼操作。這樣就簡化書寫。

是以學習正規表達式,就是在學習一些特殊符号的使用。

好處:可以簡化對字元串的複雜操作。

65.按照疊詞完成切割了可以讓規則的結果被重用可以将過則封裝成一個組。用()完成。組的出現都有編号。從1開始。要想使用已有的組可以通過\n的形式來擷取。

66正規表達式符号越多閱讀性越差。

将正規表達式分裝成對象

讓正則對象和要操作的字元串想關聯。