steinqiao |
|
|||
日歷
統計
導航常用鏈接留言簿隨筆檔案搜索最新評論
閱讀排行榜評論排行榜 |
Java SE Lesson 3
1. 接口中所聲明的方法都是抽象方法。接口中的方法都是 public 的。 2. 接口中也可以定義成員變量。接口中的成員變量都是 public、final、static 的。 3. 一個類不能既是 final,又是 abstract 的。因為 abstract 的主要目的是定義一種約定, 讓子類去實現這種約定,而 final 表示該類不能被繼承,這樣 abstract 希望該類可以 被繼承而 final 明確說明該類不能被繼承,兩者矛盾。因此一個類不能既是 final 的, 又是 abstract 的。 4. Design Pattern(設計模式)。單例模式(Singleton):表示一個類只會生成唯一的一 個對象。 5. 包(package)。用于將完成不同功能的類分門別類,放在不同的目錄(包)下。包 的命名規則:將公司域名反轉作為包名。www.shengsiyuan.com,com.shengsiyuan(包 名),對于包名:每個字母都需要小寫。如果定義類的時候沒有使用 package,那么 Java 就認為我們所定義的類位于默認包里面(default package)。 6. 編譯帶有 package 聲明的 Java 源文件有兩種方式: a) 直接編譯,然后根據類中所定義的包名,逐一手工建立目錄結構,最后將生成的 class 文件放到該目錄結構中(很少使用,比較麻煩)。 b) 使用編譯參數 –d,方式為 javac –d . 源文件.java,這樣在編譯后,編譯器會自動幫 助我們建立好包所對應的目錄結構。 7. 有兩個包名,分別是 aa.bb.cc 與 aa.bb.cc.dd,那么我們稱后者為前者的子包。 8. 導入(import),將使用 package 分離的各個類導入回來,讓編譯器能夠找到所需要 的類。 9. import 的語法:import com.shengsiyuan.PackageTest; 10. import com.shengsiyuan.*,表示導入 com.shengsiyuan 包下面的所有類。 11. import aa.bb.*并不會導入 aa.bb.cc 包下面的類。這時需要這樣寫: import aa.bb.*; import aa.bb.cc.*; 12. 關于 package、import、class 的順序問題: a) 首先需要定義包(package),可選 b) 接下來使用 import 進行導入,可選 c) 然后才是 class 或 interface 的定義。 13. 如果兩個類在同一個包下面,那么則不需要導入,直接使用即可。 14. 訪問修飾符(access modifier)。 2) protected(受保護的):被 protected 所修飾的屬性和方法可以在類內部、相同包 以及該類的子類所訪問。 3) private(私有的):被 private 所修飾的屬性和方法只能在該類內部使用 4) 默認的(不加任何訪問修飾符):在類內部以及相同包下面的類所使用。 15. instanceof: 判斷某個對象是否是某個類的實例。語法形式:引用名 instanceof 類 名(接口名),返回一個 boolean 值。 16. People people = new Man(); 17. System.out.println(people instanceof People); //結果為 true,因為 Man 是 People 的子 類,根據繼承,子類就是父類,因此 Man 也可以看作是 People 的實例。 18. 相等性的比較(==)
1) 對于原生數據類型來說,比較的是左右兩邊的值是否相等。 2) 對于引用類型來說,比較左右兩邊的引用是否指向同一個對象,或者說左右兩 邊的引用地址是否相同。 19. java.lang.Object 類。java.lang 包在使用的時候無需顯式導入,編譯時由編譯器自動 幫助我們導入。 20. API (Application Programming Interface),應用編程接口。 21. 當打印引用時,實際上會打印出引用所指對象的 toString()方法的返回值,因為每個 類都直接或間接地繼承自 Object,而 Object 類中定義了 toString(),因此每個類都有 toString()這個方法。 22. 關于進制的表示:16 進制,逢 16 進一,16 進制的數字包括:0~9,A,B,C,D,E,F, 23. equals()方法,該方法定義在 Object 類當中,因此 Java 中的每個類都具有該方法, 對于 Object 類的 equals()方法來說,它是判斷調用 equals()方法的引用與傳進來的引 用是否一致,即這兩個引用是否指向的是同一個對象。對于 Object 類的 equals()方 法來說,它等價于==。 24. 對于 String 類的 equals()方法來說,它是判斷當前字符串與傳進來的字符串的內容 是否一致。 25. 對于 String 對象的相等性判斷來說,請使用 equals()方法,而不要使用==。 26. String 是常量,其對象一旦創建完畢就無法改變。當使用+拼接字符串時,會生成新 的 String 對象,而不是向原有的 String 對象追加內容。 27. String Pool(字符串池) 28. String s = “aaa”;(采用字面值方式賦值) 1) 查找 String Pool 中是否存在“aaa”這個對象,如果不存在,則在 String Pool 中創建 一個“aaa”對象,然后將 String Pool 中的這個“aaa”對象的地址返回來,賦給引 用變量 s,這樣 s 會指向 String Pool 中的這個“aaa”字符串對象 2) 如果存在,則不創建任何對象,直接將 String Pool 中的這個“aaa”對象地址返回來, 賦給 s 引用。 29. String s = new String(“aaa”); 1) 首先在 String Pool 中查找有沒有“aaa”這個字符串對象,如果有,則不在 String Pool 中再去創建“aaa”這個對象了,直接在堆中(heap)中創建一個“aaa”字符串對 象,然后將堆中的這個“aaa”對象的地址返回來,賦給 s 引用,導致 s 指向了堆中 創建的這個“aaa”字符串對象。 2) 如果沒有,則首先在 String Pool 中創建一個“aaa“對象,然后再在堆中(heap)創 建一個”aaa“對象,然后將堆中的這個”aaa“對象的地址返回來,賦給 s 引用, 導致 s 指向了堆中所創建的這個”aaa“對象。 |
![]() |
|
Copyright © 斯坦 | Powered by: 博客園 模板提供:滬江博客 |