摘要:標(biāo)識(shí)符與關(guān)鍵字標(biāo)識(shí)符指類名包括接口枚舉抽象類方法名變量常量名包名等可以自定義的字符組合。如果基本功能在不斷改變,那么就需要使用抽象類。抽象類可以實(shí)現(xiàn)接口,抽象類是否可繼承實(shí)體類,但前提是實(shí)體類必須有明確的構(gòu)造函數(shù)。
歡迎進(jìn)入JAVA基礎(chǔ)課程
博客地址:https://blog.csdn.net/houjiyu...
本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所結(jié),不管是剛接觸JAVA開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)廣大同行帶來(lái)一些幫助。若有問(wèn)題請(qǐng)及時(shí)留言或加QQ:243042162。
寄語(yǔ):JDK與JRE
海納百川,有容乃大;壁立千仞,無(wú)欲則剛。
JDK(java development kit ,java開(kāi)發(fā)工具包,提供java開(kāi)發(fā)環(huán)境和運(yùn)行環(huán)境)
JRE(java runtime environment,java運(yùn)行環(huán)境)
JVM(java virtual machine,java虛擬機(jī),整個(gè)java實(shí)現(xiàn)跨平臺(tái)的最核心的部分)
我們?cè)诎惭bjava環(huán)境時(shí),經(jīng)常會(huì)有疑問(wèn),jdk里的jre與外面jre有什么區(qū)別?
jdk-jre(專用jre)與公共jre的主要區(qū)別在于jdk-jre多了一個(gè)server的vm執(zhí)行選項(xiàng)。JAVA標(biāo)識(shí)符與關(guān)鍵字
簡(jiǎn)言之:如果電腦運(yùn)行一個(gè)java程序的時(shí)候,會(huì)自動(dòng)調(diào)用client vm;但是如果開(kāi)發(fā)java程序時(shí)使用的就是server vm,注意:平時(shí)所說(shuō)的“java自動(dòng)更新”根本不是所安裝的JDK版本的更新,它指的是這個(gè)公用JRE運(yùn)行時(shí)環(huán)境的更新,這個(gè)更新為的是讓你的計(jì)算機(jī)能夠使用最新版本正常的運(yùn)行一些網(wǎng)站或則Web應(yīng)用等等當(dāng)中的java程序。
1.標(biāo)識(shí)符: 指類名(包括接口、枚舉、抽象類)、方法名、變量、常量名、包名等可以自定義的字符組合。
1)標(biāo)識(shí)符不能是關(guān)鍵字或true、false、null。
2)標(biāo)識(shí)符可以包含字母、數(shù)字0-9下劃線(_)或美元符號(hào)($)。
3)標(biāo)識(shí)符的第一個(gè)字符必須是字母、下劃線(_)或美元符號(hào)($)。
4)標(biāo)識(shí)符是區(qū)別大小寫的,并且沒(méi)有規(guī)定最大長(zhǎng)度。
2.關(guān)鍵字
訪問(wèn)控制 | private | protected | public | ? | ? | ? | ? |
類,方法和變量修飾符 | abstract | class | extends | final | implements | interface | native |
? | new | static | strictfp | synchronized | transient | volatile | ? |
程序控制 | break | continue | return | do | while | if | else |
? | for | instanceof | switch | case | default | ? | ? |
錯(cuò)誤處理 | try | catch | throw | throws | finally | ? | ? |
包相關(guān) | import | package | ? | ? | ? | ? | ? |
基本類型 | boolean | byte | char | double | float | int | long |
? | short | null | true | false | ? | ? | ? |
變量引用 | super | this | void | ? | ? | ? | ? |
保留字 | goto | const | ? | ? | ? | ? | ? |
1.用來(lái)修飾成員變量,將其變?yōu)轭惖某蓡T,從而實(shí)現(xiàn)所有對(duì)象對(duì)于該成員的共享;
2.用來(lái)修飾成員方法,將其變?yōu)轭惙椒ǎ梢灾苯邮褂谩邦惷?方法名”的方式調(diào)用,常用于工具類;
3.靜態(tài)塊用法,將多個(gè)類成員放在一起初始化,使得程序更加規(guī)整,其中理解對(duì)象的初始化過(guò)程非常關(guān)鍵;
4.靜態(tài)導(dǎo)包用法,將類的方法直接導(dǎo)入到當(dāng)前類中,從而直接使用“方法名”即可調(diào)用類方法,更加方便。
代碼示例
class TestSon { public TestSon(String msg) { System.out.println(msg); } } public class StaticTest { TestSon son1 = new TestSon("son1成員變量初始化"); static TestSon son2; static { son2 = new TestSon("static成員son2成員變量初始化"); son4 = new TestSon("static成員son4成員變量初始化"); } public StaticTest(String msg) { System.out.println(msg); } TestSon son3 = new TestSon("son3成員變量初始化"); static TestSon son4; public static void funStatic() { System.out.println("static修飾的funStatic方法"); } public static void main(String[] args) { StaticTest.funStatic(); System.out.println("****************"); StaticTest p1 = new StaticTest("p1初始化"); } }
輸出
static成員son2成員變量初始化 static成員son4成員變量初始化 static修飾的funStatic方法 **************** son1成員變量初始化 son3成員變量初始化 p1初始化重寫與重載
方法的重寫 Overriding 和重載 Overloading 是 Java 多態(tài)性的不同表現(xiàn)。接口與抽象類
重寫 Overriding 是父類與子類之間多態(tài)性的一種表現(xiàn),重載 Overloading 是一個(gè)類中多態(tài)性的一種表現(xiàn)。
如果你擁有一些方法并且想讓它們中的一些有默認(rèn)實(shí)現(xiàn),那么使用抽象類吧。
如果你想實(shí)現(xiàn)多重繼承,那么你必須使用接口。由于Java不支持多繼承,子類不能夠繼承多個(gè)類,但可以實(shí)現(xiàn)多個(gè)接口。因此你就可以使用接口來(lái)解決它。
如果基本功能在不斷改變,那么就需要使用抽象類。如果不斷改變基本功能并且使用接口,那么就需要改變所有實(shí)現(xiàn)了該接口的類。
接口可以繼承接口。抽象類可以實(shí)現(xiàn)(implements)接口,抽象類是否可繼承實(shí)體類,但前提是實(shí)體類必須有明確的構(gòu)造函數(shù)。
參數(shù) | 抽象類 | 接口 |
---|---|---|
默認(rèn)的方法實(shí)現(xiàn) | 它可以有默認(rèn)的方法實(shí)現(xiàn) | 接口完全是抽象的。它根本不存在方法的實(shí)現(xiàn) |
實(shí)現(xiàn) | 子類使用extends關(guān)鍵字來(lái)繼承抽象類。如果子類不是抽象類的話,它需要提供抽象類中所有聲明的方法的實(shí)現(xiàn)。 | 子類使用關(guān)鍵字implements來(lái)實(shí)現(xiàn)接口。它需要提供接口中所有聲明的方法的實(shí)現(xiàn) |
構(gòu)造器 | 抽象類可以有構(gòu)造器 | 接口不能有構(gòu)造器 |
與正常Java類的區(qū)別 | 除了你不能實(shí)例化抽象類之外,它和普通Java類沒(méi)有任何區(qū)別 | 接口是完全不同的類型 |
訪問(wèn)修飾符 | 抽象方法可以有public、protected和default這些修飾符 | 接口方法默認(rèn)修飾符是public。你不可以使用其它修飾符。 |
main方法 | 抽象方法可以有main方法并且我們可以運(yùn)行它 | 接口沒(méi)有main方法,因此我們不能運(yùn)行它。 |
多繼承 | 抽象方法可以繼承一個(gè)類和實(shí)現(xiàn)多個(gè)接口 | 接口只可以繼承一個(gè)或多個(gè)其它接口 |
速度 | 它比接口速度要快 | 接口是稍微有點(diǎn)慢的,因?yàn)樗枰獣r(shí)間去尋找在類中實(shí)現(xiàn)的方法。 |
添加新方法 | 如果你往抽象類中添加新的方法,你可以給它提供默認(rèn)的實(shí)現(xiàn)。因此你不需要改變你現(xiàn)在的代碼。 | 如果你往接口中添加方法,那么你必須改變實(shí)現(xiàn)該接口的類。 |
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/74921.html
摘要:歡迎進(jìn)入基礎(chǔ)課程博客地址本系列文章將主要針對(duì)一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)廣大同行帶來(lái)一些幫助。是同步的,而不是。因此,更適合于單線程環(huán)境,而適合于多線程環(huán)境。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總...
摘要:歡迎進(jìn)入基礎(chǔ)課程博客地址本系列文章將主要針對(duì)一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)廣大同行帶來(lái)一些幫助。是同步的,而不是。因此,更適合于單線程環(huán)境,而適合于多線程環(huán)境。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總...
摘要:,用于調(diào)用垃圾收集器,在調(diào)用時(shí),垃圾收集器將運(yùn)行以回收未使用的內(nèi)存空間。然而調(diào)用附帶一個(gè)免責(zé)聲明,無(wú)法保證對(duì)垃圾收集器的調(diào)用。所以并不能說(shuō)是完美主動(dòng)進(jìn)行了垃圾回收。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸JAVA開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希...
摘要:一個(gè)進(jìn)程可以有多個(gè)線程。線程又叫做輕量級(jí)進(jìn)程。這樣兩個(gè)進(jìn)程相互無(wú)休止地等待下去,均無(wú)法繼續(xù)執(zhí)行,此時(shí)兩個(gè)進(jìn)程陷入死鎖狀態(tài)。不剝奪條件進(jìn)程所獲得的資源在未使用完畢之前,不能被其他進(jìn)程強(qiáng)行奪走,即只能由獲得該資源的進(jìn)程自己來(lái)釋放只能是主動(dòng)釋放。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)...
摘要:一個(gè)進(jìn)程可以有多個(gè)線程。線程又叫做輕量級(jí)進(jìn)程。這樣兩個(gè)進(jìn)程相互無(wú)休止地等待下去,均無(wú)法繼續(xù)執(zhí)行,此時(shí)兩個(gè)進(jìn)程陷入死鎖狀態(tài)。不剝奪條件進(jìn)程所獲得的資源在未使用完畢之前,不能被其他進(jìn)程強(qiáng)行奪走,即只能由獲得該資源的進(jìn)程自己來(lái)釋放只能是主動(dòng)釋放。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)...
閱讀 2933·2023-04-26 01:49
閱讀 2066·2021-10-13 09:39
閱讀 2278·2021-10-11 11:09
閱讀 923·2019-08-30 15:53
閱讀 2817·2019-08-30 15:44
閱讀 916·2019-08-30 11:12
閱讀 2966·2019-08-29 17:17
閱讀 2371·2019-08-29 16:57