為了便于大家學(xué)習(xí),本文整理分享一下100條初學(xué)者必背的Java知識(shí)點(diǎn)。由于篇幅過(guò)長(zhǎng),首先分享前50條,干貨滿(mǎn)滿(mǎn),建議先收藏哦~
1.編寫(xiě):編寫(xiě)的Java代碼保存在以“.java”結(jié)尾的源文件中。
2.編譯:使用javac.exe命令編譯java源文件,生成字節(jié)碼文件。格式:javac 源文件名.java
3.運(yùn)行:使用java.exe命令解釋運(yùn)行字節(jié)碼文件。格式:java 類(lèi)名
4.在一個(gè)java源文件中可以聲明多個(gè)class,但是只能最多有一個(gè)類(lèi)聲明為public,而且被聲明為public的類(lèi)的類(lèi)名必須與源文件名相同。
5.java關(guān)鍵字中所有字母都為小寫(xiě)
6.Java中的名稱(chēng)命名規(guī)范:包名:多單詞組成時(shí)所有字母都小寫(xiě):xxxyyyzzz 類(lèi)名、接口名:多單詞組成時(shí),所有單詞的首字母大寫(xiě):XxxYyyZzz變量名、方法名:多單詞組成時(shí),第一個(gè)單詞首字母小寫(xiě),第二個(gè)單詞開(kāi)始每個(gè) 單詞首字母大寫(xiě):xxxYyyZzz常量名:所有字母都大寫(xiě)。多單詞時(shí)每個(gè)單詞用下劃線(xiàn)連接:XXX_YYY_ZZZ
7.字符串是屬于一個(gè)類(lèi),屬于引用數(shù)據(jù)類(lèi)型
8.在類(lèi)體內(nèi),在方法體外聲明的變量稱(chēng)為成員變量。
9.在方法體內(nèi)部聲明的變量稱(chēng)為局部變量。局部變量除形參外,需顯式初始化才能使用。(形參也是局部變量)
10.java的整型常量默認(rèn)為 int 型,聲明long型常量須后加‘l’或‘L’。
11.Java的浮點(diǎn)型常量默認(rèn)為double型,聲明float型常量,須后加‘f’或‘F’。
12.Java中的所有字符都使用Unicode編碼,一個(gè)字符可以存儲(chǔ)一個(gè)字母,一個(gè)漢字,所以java中char類(lèi)型是兩個(gè)字節(jié)。
13.boolean類(lèi)型數(shù)據(jù)只允許取值true和false,無(wú)null。不可以使用0或非 0 的整數(shù)替代false和true。Java虛擬機(jī)中沒(méi)有任何供boolean值專(zhuān)用的字節(jié)碼指令,Java語(yǔ)言表達(dá)所操作的 boolean值,在編譯之后都使用java虛擬機(jī)中的int數(shù)據(jù)類(lèi)型來(lái)代替:true用1表示,false 用0表示。
14.雖然long類(lèi)型是8個(gè)字節(jié),float是4個(gè)字節(jié),但是float類(lèi)型采用科學(xué)計(jì)數(shù)法存儲(chǔ),所以float類(lèi)型的存儲(chǔ)范圍比long類(lèi)型更大。
15.自動(dòng)類(lèi)型轉(zhuǎn)換:容量小的類(lèi)型自動(dòng)轉(zhuǎn)換為容量大的數(shù)據(jù)類(lèi)型。byte,short,char之間不會(huì)相互轉(zhuǎn)換,他們?nèi)咴谟?jì)算時(shí)首先轉(zhuǎn)換為int類(lèi)型。
16.強(qiáng)制類(lèi)型轉(zhuǎn)換:將容量大的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為容量小的數(shù)據(jù)類(lèi)型,但可能造成精度降低或溢出。
17.字符串不能直接轉(zhuǎn)換為基本類(lèi)型,但通過(guò)基本類(lèi)型對(duì)應(yīng)的包裝類(lèi)則可以實(shí)現(xiàn)把字符串轉(zhuǎn)換成基本類(lèi)型。
18.計(jì)算機(jī)底層都以二進(jìn)制補(bǔ)碼的方式來(lái)存儲(chǔ)數(shù)據(jù)。
19.正數(shù)(最高位是0)的原碼、反碼、補(bǔ)碼都相同,負(fù)數(shù)(最高位是1)的補(bǔ)碼是其反碼+1。
20.賦值運(yùn)算符:= += -= *= /= %=,運(yùn)算的結(jié)果不會(huì)改變變量本身的數(shù)據(jù)類(lèi)型。short i = i + 1;由于常量“1”默認(rèn)是int型的,所以編譯會(huì)報(bào)錯(cuò),使用short i += 1,則做到了+1的作用,也沒(méi)有改變數(shù)據(jù)類(lèi)型。
21.&與&&、| 與 | | 的區(qū)別:&&、| | 具備短路功能,左邊的條件成立或者不成立,右邊的條件不用再判斷,&、| 不管什么情況,都要把所有條件判斷完。
22.位運(yùn)算:位運(yùn)算符操作的都是整型的數(shù)據(jù)。(左移運(yùn)算符)<< :在一定范圍內(nèi),每向左移1位,相當(dāng)于 * 2(右移運(yùn)算符)>> :在一定范圍內(nèi),每向右移1位,相當(dāng)于 / 2
23.流程控制:順序結(jié)構(gòu):程序從上到下執(zhí)行。分支結(jié)構(gòu):if - else、switch-case循環(huán)結(jié)構(gòu):for、while、do-while
24.數(shù)組屬于引用數(shù)據(jù)類(lèi)型變量,但是數(shù)組的元素既可以是基本數(shù)據(jù)類(lèi)型,也可以是引用數(shù)據(jù)類(lèi)型。
25.數(shù)組的長(zhǎng)度一旦確定就不能修改,初始化完成,長(zhǎng)度就定了。
26.數(shù)組靜態(tài)初始化:數(shù)組元素的初始化和數(shù)組元素的賦值同時(shí)進(jìn)行。例如:int a[ ] = new int [ ] { 1,2,3 };
27.數(shù)組動(dòng)態(tài)初始化:數(shù)組元素的初始化和數(shù)組元素的賦值分開(kāi)進(jìn)行。例如:int b[ ] = new int [5]; b[0] = 1 ;
28.數(shù)組元素的默認(rèn)初始化值:整型:0浮點(diǎn)型:0.0字符型:0或者’\u0000’,而非’0’布爾類(lèi)型:false引用數(shù)據(jù)類(lèi)型:null
29.關(guān)鍵字 break、continue 可以帶標(biāo)簽使用(類(lèi)似于C語(yǔ)言的goto語(yǔ)句)break label;//結(jié)束指定標(biāo)識(shí)的一層循環(huán)結(jié)構(gòu)。continue label;//結(jié)束指定標(biāo)識(shí)的一層循環(huán)結(jié)構(gòu)當(dāng)次循環(huán)。
30.面向?qū)ο髒s面向過(guò)程面向過(guò)程:強(qiáng)調(diào)的是功能行為,以函數(shù)為最小單位,考慮怎么做。面向?qū)ο螅簭?qiáng)調(diào)具備了功能的對(duì)象,以類(lèi)/對(duì)象為最小單位,考慮誰(shuí)來(lái)做。
31.面向?qū)ο笾袃蓚€(gè)重要的概念:類(lèi):對(duì)一類(lèi)事物的描述,是抽象的、概念上的定義對(duì)象:是實(shí)際存在的該類(lèi)事物的每個(gè)個(gè)體,因而也稱(chēng)為實(shí)例(instance)
32.虛擬機(jī)棧,即為平時(shí)提到的棧結(jié)構(gòu)。局部變量存儲(chǔ)在棧結(jié)構(gòu)中;new出來(lái)的結(jié)構(gòu)(比如:數(shù)組、對(duì)象)加載在堆空間中。
補(bǔ)充:對(duì)象的屬性(非static的成員變量)也是加載在堆空間中。int arr [ ] = new arr [ ],以等號(hào)“=”為界,左邊是局部變量存放在棧,右邊是new 的機(jī)構(gòu),存放在堆中。
方法區(qū):類(lèi)的加載信息、常量池、靜態(tài)域
33.“屬性”與“變量”的區(qū)別:
① 在類(lèi)中聲明的位置的不同屬性:
直接定義在類(lèi)的一對(duì){}內(nèi)。局部變量:聲明在方法內(nèi)、方法形參、代碼塊內(nèi)、構(gòu)造器形參、構(gòu)造器內(nèi)部的變量。
② 關(guān)于權(quán)限修飾符的不同屬性:
可以在聲明屬性時(shí),指明其權(quán)限,使用權(quán)限修飾符。常用的權(quán)限修飾符:private、public、缺省、protected —>體現(xiàn)為封裝性。局部變量:不可以使用權(quán)限修飾符。
③ 默認(rèn)初始化值的情況屬性:
類(lèi)的屬性,根據(jù)其類(lèi)型,都默認(rèn)初始化值。整型(byte、short、int、long:0)、浮點(diǎn)型(float、double:0.0)、字符型(char:0 (或’\u0000’))、布爾型(boolean:false)、引用數(shù)據(jù)類(lèi)型(類(lèi)、數(shù)組、接口:null)局部變量:沒(méi)默認(rèn)初始化值。意味著,我們?cè)谡{(diào)用局部變量之前,一定要顯式賦值。特別地:形參在調(diào)用時(shí),我們賦值即可。
④在內(nèi)存中加載的位置屬性:
加載到堆空間中 (非static)。局部變量:加載到??臻g。
34.如果方法沒(méi)返回值,“return;”表示結(jié)束此方法的意思。
35.封裝性思想具體的代碼體現(xiàn):
36.權(quán)限修飾符的范圍:
37.4種權(quán)限都可以用來(lái)修飾類(lèi)的內(nèi)部結(jié)構(gòu):屬性、方法、構(gòu)造器、內(nèi)部類(lèi)。修飾類(lèi)的話(huà),只能使用:缺省、public。
38.如果沒(méi)顯式的定義類(lèi)的構(gòu)造器的話(huà),則系統(tǒng)默認(rèn)提供一個(gè)空參的構(gòu)造器。
39.一個(gè)類(lèi)中定義的多個(gè)構(gòu)造器,彼此構(gòu)成重載。
40.一旦我們顯式的定義了類(lèi)的構(gòu)造器之后,系統(tǒng)就不再提供默認(rèn)的空參構(gòu)造器。
41.一個(gè)類(lèi)中,至少會(huì)有一個(gè)構(gòu)造器。
42.this可以理解為:當(dāng)前對(duì)象或當(dāng)前正在創(chuàng)建的對(duì)象。
43.可以顯式的使用"this(形參列表)"方式,調(diào)用本類(lèi)中指定的其他構(gòu)造器,但是構(gòu)造器中不能通過(guò)"this(形參列表)"方式調(diào)用自己(死循環(huán))。
44.規(guī)定:"this(形參列表)“必須聲明在當(dāng)前構(gòu)造器的首行,可以推出構(gòu)造器內(nèi)部,最多只能聲明一個(gè)"this(形參列表)”,用來(lái)調(diào)用其他的構(gòu)造器。
45.如果使用的類(lèi)或接口是java.lang包下定義的,則可以省略import結(jié)構(gòu)。使用"xxx.*"方式表明可以調(diào)用xxx包下的所有結(jié)構(gòu)。但是如果使用的是xxx子包下的結(jié)構(gòu),則仍需要顯式導(dǎo)入。
46.一個(gè)類(lèi)可以被多個(gè)子類(lèi)繼承(一個(gè)爸爸可以有多個(gè)兒子),但是一個(gè)類(lèi)只能有一個(gè)父類(lèi)(一個(gè)兒子只能有一個(gè)親生爸爸)
47.子類(lèi)繼承父類(lèi)以后有哪些不同?一旦子類(lèi)A繼承父類(lèi)B以后,子類(lèi)A中就獲取了父類(lèi)B中聲明的所有的屬性和方法。特別的,父類(lèi)中聲明為private的屬性或方法,子類(lèi)繼承父類(lèi)以后,仍然是獲取了父類(lèi)中私的結(jié)構(gòu),只因?yàn)榉庋b性(private權(quán)限修飾符)的影響,使得子類(lèi)不能直接調(diào)用父類(lèi)的結(jié)構(gòu)而已。子類(lèi)繼承父類(lèi)以后,還可以聲明自己特有的屬性或方法:實(shí)現(xiàn)功能的拓展。
48.子類(lèi)直接繼承的父類(lèi),稱(chēng)為:直接父類(lèi)。間接繼承的父類(lèi)稱(chēng)為:間接父類(lèi)。子類(lèi)繼承父類(lèi)以后,就獲取了直接父類(lèi)以及所有間接父類(lèi)中聲明的屬性和方法。
49.如果沒(méi)有顯式的聲明一個(gè)類(lèi)的父類(lèi)的話(huà),則此類(lèi)繼承于java.lang.Object類(lèi)。
50.方法的重寫(xiě)(override 或 overwrite)。
子類(lèi)繼承父類(lèi)以后,可以對(duì)父類(lèi)中同名同參數(shù)的方法,進(jìn)行覆蓋操作。
掃碼添加捷碼微信入群~已有5000+智慧城市/AloT/IT行業(yè)精英入群交流,入群即得《Java核心技術(shù)電子書(shū)》
Java很難學(xué)?最易/難學(xué)習(xí)的編程語(yǔ)言TOP5來(lái)了! 閱讀814次
0基礎(chǔ)如何快速學(xué)習(xí)Java? 閱讀921次
快速試用捷碼
點(diǎn)擊“立即申請(qǐng)”即可成為捷碼客戶(hù),將享受捷碼終身技術(shù)咨詢(xún)服務(wù),和遠(yuǎn)程技術(shù)支持服務(wù)。