摘要:標識符與關鍵字標識符指類名包括接口枚舉抽象類方法名變量常量名包名等可以自定義的字符組合。如果基本功能在不斷改變,那么就需要使用抽象類。抽象類可以實現接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
歡迎進入JAVA基礎課程
博客地址:https://blog.csdn.net/houjiyu...
本系列文章將主要針對JAVA一些基礎知識點進行講解,為平時歸納所結,不管是剛接觸JAVA開發菜鳥還是業界資深人士,都希望對廣大同行帶來一些幫助。若有問題請及時留言或加QQ:243042162。
寄語:JDK與JRE
海納百川,有容乃大;壁立千仞,無欲則剛。
JDK(java development kit ,java開發工具包,提供java開發環境和運行環境)
JRE(java runtime environment,java運行環境)
JVM(java virtual machine,java虛擬機,整個java實現跨平臺的最核心的部分)
我們在安裝java環境時,經常會有疑問,jdk里的jre與外面jre有什么區別?
jdk-jre(專用jre)與公共jre的主要區別在于jdk-jre多了一個server的vm執行選項。JAVA標識符與關鍵字
簡言之:如果電腦運行一個java程序的時候,會自動調用client vm;但是如果開發java程序時使用的就是server vm,注意:平時所說的“java自動更新”根本不是所安裝的JDK版本的更新,它指的是這個公用JRE運行時環境的更新,這個更新為的是讓你的計算機能夠使用最新版本正常的運行一些網站或則Web應用等等當中的java程序。
1.標識符: 指類名(包括接口、枚舉、抽象類)、方法名、變量、常量名、包名等可以自定義的字符組合。
1)標識符不能是關鍵字或true、false、null。
2)標識符可以包含字母、數字0-9下劃線(_)或美元符號($)。
3)標識符的第一個字符必須是字母、下劃線(_)或美元符號($)。
4)標識符是區別大小寫的,并且沒有規定最大長度。
2.關鍵字
訪問控制 | 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 | ? | ? |
錯誤處理 | try | catch | throw | throws | finally | ? | ? |
包相關 | import | package | ? | ? | ? | ? | ? |
基本類型 | boolean | byte | char | double | float | int | long |
? | short | null | true | false | ? | ? | ? |
變量引用 | super | this | void | ? | ? | ? | ? |
保留字 | goto | const | ? | ? | ? | ? | ? |
1.用來修飾成員變量,將其變為類的成員,從而實現所有對象對于該成員的共享;
2.用來修飾成員方法,將其變為類方法,可以直接使用“類名.方法名”的方式調用,常用于工具類;
3.靜態塊用法,將多個類成員放在一起初始化,使得程序更加規整,其中理解對象的初始化過程非常關鍵;
4.靜態導包用法,將類的方法直接導入到當前類中,從而直接使用“方法名”即可調用類方法,更加方便。
代碼示例
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 多態性的不同表現。接口與抽象類
重寫 Overriding 是父類與子類之間多態性的一種表現,重載 Overloading 是一個類中多態性的一種表現。
如果你擁有一些方法并且想讓它們中的一些有默認實現,那么使用抽象類吧。
如果你想實現多重繼承,那么你必須使用接口。由于Java不支持多繼承,子類不能夠繼承多個類,但可以實現多個接口。因此你就可以使用接口來解決它。
如果基本功能在不斷改變,那么就需要使用抽象類。如果不斷改變基本功能并且使用接口,那么就需要改變所有實現了該接口的類。
接口可以繼承接口。抽象類可以實現(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
參數 | 抽象類 | 接口 |
---|---|---|
默認的方法實現 | 它可以有默認的方法實現 | 接口完全是抽象的。它根本不存在方法的實現 |
實現 | 子類使用extends關鍵字來繼承抽象類。如果子類不是抽象類的話,它需要提供抽象類中所有聲明的方法的實現。 | 子類使用關鍵字implements來實現接口。它需要提供接口中所有聲明的方法的實現 |
構造器 | 抽象類可以有構造器 | 接口不能有構造器 |
與正常Java類的區別 | 除了你不能實例化抽象類之外,它和普通Java類沒有任何區別 | 接口是完全不同的類型 |
訪問修飾符 | 抽象方法可以有public、protected和default這些修飾符 | 接口方法默認修飾符是public。你不可以使用其它修飾符。 |
main方法 | 抽象方法可以有main方法并且我們可以運行它 | 接口沒有main方法,因此我們不能運行它。 |
多繼承 | 抽象方法可以繼承一個類和實現多個接口 | 接口只可以繼承一個或多個其它接口 |
速度 | 它比接口速度要快 | 接口是稍微有點慢的,因為它需要時間去尋找在類中實現的方法。 |
添加新方法 | 如果你往抽象類中添加新的方法,你可以給它提供默認的實現。因此你不需要改變你現在的代碼。 | 如果你往接口中添加方法,那么你必須改變實現該接口的類。 |
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74921.html
摘要:歡迎進入基礎課程博客地址本系列文章將主要針對一些基礎知識點進行講解,為平時歸納所總結,不管是剛接觸開發菜鳥還是業界資深人士,都希望對廣大同行帶來一些幫助。是同步的,而不是。因此,更適合于單線程環境,而適合于多線程環境。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進行講解,為平時歸納所總...
摘要:歡迎進入基礎課程博客地址本系列文章將主要針對一些基礎知識點進行講解,為平時歸納所總結,不管是剛接觸開發菜鳥還是業界資深人士,都希望對廣大同行帶來一些幫助。是同步的,而不是。因此,更適合于單線程環境,而適合于多線程環境。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進行講解,為平時歸納所總...
摘要:,用于調用垃圾收集器,在調用時,垃圾收集器將運行以回收未使用的內存空間。然而調用附帶一個免責聲明,無法保證對垃圾收集器的調用。所以并不能說是完美主動進行了垃圾回收。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進行講解,為平時歸納所總結,不管是剛接觸JAVA開發菜鳥還是業界資深人士,都希...
摘要:一個進程可以有多個線程。線程又叫做輕量級進程。這樣兩個進程相互無休止地等待下去,均無法繼續執行,此時兩個進程陷入死鎖狀態。不剝奪條件進程所獲得的資源在未使用完畢之前,不能被其他進程強行奪走,即只能由獲得該資源的進程自己來釋放只能是主動釋放。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進...
摘要:一個進程可以有多個線程。線程又叫做輕量級進程。這樣兩個進程相互無休止地等待下去,均無法繼續執行,此時兩個進程陷入死鎖狀態。不剝奪條件進程所獲得的資源在未使用完畢之前,不能被其他進程強行奪走,即只能由獲得該資源的進程自己來釋放只能是主動釋放。 歡迎進入JAVA基礎課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎知識點進...
閱讀 2956·2023-04-26 01:49
閱讀 2083·2021-10-13 09:39
閱讀 2297·2021-10-11 11:09
閱讀 938·2019-08-30 15:53
閱讀 2828·2019-08-30 15:44
閱讀 932·2019-08-30 11:12
閱讀 2993·2019-08-29 17:17
閱讀 2388·2019-08-29 16:57