steinqiao  
          日歷
          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910
          統(tǒng)計(jì)
          • 隨筆 - 8
          • 文章 - 0
          • 評論 - 1
          • 引用 - 0

          導(dǎo)航

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

           

           

           

          Java SE Lesson 3

           

          1.   接口中所聲明的方法都是抽象方法。接口中的方法都是 public 的。

          2.   接口中也可以定義成員變量。接口中的成員變量都是 publicfinalstatic 的。

          3.   一個(gè)類不能既是 final,又是 abstract 的。因?yàn)?/span> abstract 的主要目的是定義一種約定,

          讓子類去實(shí)現(xiàn)這種約定,而 final 表示該類不能被繼承,這樣 abstract 希望該類可以

          被繼承而 final 明確說明該類不能被繼承,兩者矛盾。因此一個(gè)類不能既是 final 的,

          又是 abstract 的。

          4.   Design Pattern(設(shè)計(jì)模式)。單例模式(Singleton):表示一個(gè)類只會生成唯一的一

          個(gè)對象。

          5.   包(package)。用于將完成不同功能的類分門別類,放在不同的目錄(包)下。包

          的命名規(guī)則:將公司域名反轉(zhuǎn)作為包名www.shengsiyuan.comcom.shengsiyuan(包

          名),對于包名:每個(gè)字母都需要小寫。如果定義類的時(shí)候沒有使用 package,那么

          Java 就認(rèn)為我們所定義的類位于默認(rèn)包里面(default package)。

          6.   編譯帶有 package 聲明的 Java 源文件有兩種方式:

          a)   直接編譯,然后根據(jù)類中所定義的包名,逐一手工建立目錄結(jié)構(gòu),最后將生成的 class

          文件放到該目錄結(jié)構(gòu)中(很少使用,比較麻煩)。

          b) 使用編譯參數(shù) –d,方式為 javac –d . 源文件.java,這樣在編譯后,編譯器會自動幫

          助我們建立好包所對應(yīng)的目錄結(jié)構(gòu)。

          7.   有兩個(gè)包名,分別是 aa.bb.cc aa.bb.cc.dd,那么我們稱后者為前者的子包。

          8.   導(dǎo)入(import),將使用 package 分離的各個(gè)類導(dǎo)入回來,讓編譯器能夠找到所需要

          的類。

          9.   import 的語法:import   com.shengsiyuan.PackageTest;

          10. import com.shengsiyuan.*,表示導(dǎo)入 com.shengsiyuan 包下面的所有類。

          11. import aa.bb.*并不會導(dǎo)入 aa.bb.cc 包下面的類。這時(shí)需要這樣寫:

          import aa.bb.*;

          import aa.bb.cc.*;

          12. 關(guān)于 packageimportclass 的順序問題:

          a)   首先需要定義包(package),可選

          b) 接下來使用 import 進(jìn)行導(dǎo)入,可選

          c)   然后才是 class interface 的定義。

          13. 如果兩個(gè)類在同一個(gè)包下面,那么則不需要導(dǎo)入,直接使用即可。

          14. 訪問修飾符(access modifier)。

          2     protected(受保護(hù)的):被 protected 所修飾的屬性和方法可以在類內(nèi)部、相同包

          以及該類的子類所訪問。

          3     private(私有的):被 private 所修飾的屬性和方法只能在該類內(nèi)部使用

          4     默認(rèn)的(不加任何訪問修飾符):在類內(nèi)部以及相同包下面的類所使用。

          15.   instanceof 判斷某個(gè)對象是否是某個(gè)類的實(shí)例。語法形式:引用名 instanceof 

          名(接口名),返回一個(gè) boolean 值。

          16. People people = new Man();

          17. System.out.println(people instanceof People); //結(jié)果為 true,因?yàn)?/span> Man People 的子

          類,根據(jù)繼承,子類就是父類,因此 Man 也可以看作是 People 的實(shí)例。

          18. 相等性的比較(==


           

           

           

          1     對于原生數(shù)據(jù)類型來說,比較的是左右兩邊的值是否相等。

          2     對于引用類型來說,比較左右兩邊的引用是否指向同一個(gè)對象,或者說左右兩

          邊的引用地址是否相同。

          19.   java.lang.Object 類。java.lang 包在使用的時(shí)候無需顯式導(dǎo)入,編譯時(shí)由編譯器自動

          幫助我們導(dǎo)入。

          20. API Application Programming Interface),應(yīng)用編程接口。

          21. 當(dāng)打印引用時(shí),實(shí)際上會打印出引用所指對象的 toString()方法的返回值,因?yàn)槊總€(gè)

          類都直接或間接地繼承自 Object,而 Object 類中定義了 toString(),因此每個(gè)類都有

          toString()這個(gè)方法。

          22. 關(guān)于進(jìn)制的表示:16 進(jìn)制,逢 16 進(jìn)一,16 進(jìn)制的數(shù)字包括:09A,B,C,D,E,F

          23. equals()方法,該方法定義在 Object 類當(dāng)中,因此 Java 中的每個(gè)類都具有該方法,

          對于 Object 類的 equals()方法來說,它是判斷調(diào)用 equals()方法的引用與傳進(jìn)來的引

          用是否一致,即這兩個(gè)引用是否指向的是同一個(gè)對象。對于 Object 類的 equals()

          法來說,它等價(jià)于==

          24. 對于 String 類的 equals()方法來說,它是判斷當(dāng)前字符串與傳進(jìn)來的字符串的內(nèi)容

          是否一致。

          25. 對于 String 對象的相等性判斷來說,請使用 equals()方法,而不要使用==

          26. String 是常量,其對象一旦創(chuàng)建完畢就無法改變。當(dāng)使用+拼接字符串時(shí),會生成新

          String 對象,而不是向原有的 String 對象追加內(nèi)容。

          27. String Pool(字符串池)

          28. String s = “aaa”;(采用字面值方式賦值)

          1)   查找 String Pool 中是否存在“aaa”這個(gè)對象,如果不存在,則在 String Pool 中創(chuàng)建

          一個(gè)“aaa”對象,然后將 String Pool 中的這個(gè)“aaa”對象的地址返回來,賦給引

          用變量 s,這樣 s 會指向 String Pool 中的這個(gè)“aaa”字符串對象

          2)   如果存在,則不創(chuàng)建任何對象,直接將 String Pool 中的這個(gè)“aaa”對象地址返回來,

          賦給 s 引用。

          29. String s = new String(“aaa”);

          1)   首先在 String Pool 中查找有沒有“aaa”這個(gè)字符串對象,如果有,則不在 String Pool

          中再去創(chuàng)建“aaa”這個(gè)對象了,直接在堆中(heap)中創(chuàng)建一個(gè)“aaa”字符串對

          象,然后將堆中的這個(gè)“aaa”對象的地址返回來,賦給 s 引用,導(dǎo)致 s 指向了堆中

          創(chuàng)建的這個(gè)“aaa”字符串對象。

          2)    如果沒有,則首先在 String Pool 中創(chuàng)建一個(gè)“aaa“對象,然后再在堆中(heap)創(chuàng)

          建一個(gè)”aaa“對象,然后將堆中的這個(gè)”aaa“對象的地址返回來,賦給引用,

          導(dǎo)致 s 指向了堆中所創(chuàng)建的這個(gè)”aaa“對象。

          posted on 2011-11-24 17:42 斯坦 閱讀(127) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
           
          Copyright © 斯坦 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 南陵县| 万宁市| 山西省| 台江县| 桃江县| 中西区| 始兴县| 铜山县| 忻城县| 达州市| 井陉县| 丰宁| 青冈县| 古交市| 平谷区| 博乐市| 黔南| 邢台市| 工布江达县| 城步| 永德县| 安陆市| 苏州市| 察隅县| 郧西县| 昌黎县| 罗甸县| 磐安县| 乌恰县| 东乡族自治县| 益阳市| 辽宁省| 崇左市| 陇南市| 项城市| 蓬溪县| 安岳县| 门头沟区| 绥芬河市| 南漳县| 邵阳县|