《think in java》讀書筆記(一)

來源:互聯網
上載者:User

Java是建立在C++之上的更為“純粹”的物件導向的語言,Java中一切都是對象。

C或C++是通過指標間接的操控對象,而Java是通過reference操控對象。Java中除了primitive(原始)類型以外,所有類型的對象須程式建立。為了效率,primitive類型的對象可不用new來建立,而且建立的是一個“非reference”的“自動”變數,這個變數儲存的值儲存在棧中,所以效率更高。Primitive類型包括boolean(t/f),char(16bit,unicode),byte(8bit),short(16bit),int(32bit),long(64bit),float(32bit),double(64bit)和void;另外還有兩個比較特殊的BigInteger和BigDecimal。在Java中建立數組,實際上是在建立reference的數組,這些reference會自動被初始化為一個null,所以在使用reference以前,必須用對象進行賦值。

Java中資料可以儲存到六個地方:1.寄存器(registers):速度最快,由編譯器分配;2.棧(stack):位於“常規記憶體區”,處理器可以通過棧指標直接存取,棧指標下移建立新空間,Java一般把對象的reference放在棧裡,但對象沒有放在這裡;3.堆(heap):是一段“多用途的記憶體池”,所有Java對象都儲存在這裡。同棧不同,堆的優點是分配空間時,編譯器無需知道該分配多少空間,或者這些資料會在堆裡呆多長時間,因為使用堆比較靈活,直接用new就行了;4.靜態儲存(static storage):還是存放在RAM中,整個程式運行期間都可以訪問,可以用static申明;5.固定儲存(constant storage):常量值通常直接放在程式裡,這樣就更安全;6.非記憶體的儲存(Non-RAM storage):完全獨立於程式,主要有“流對象”和“persistent對象(儲存在磁碟上)”。

範圍:eg:{ String s = new String (“a string”); },S這個reference會在範圍結束之後消失,但是S所指的那個String仍然還佔著記憶體。Java的記憶體回收行程會自動回收由new建立的且已經沒有reference所指的對象。

構建Java程式:namespace一般用網域名稱來避免重複,net.yanhuohy;用import匯入其他包中的類,只有java.lang是被預設import進去的;static資料和方法在沒有被連到類的任何一個執行個體之上,也可以直接存取。

注釋可以採用/**  ..  */,這樣可以用Javadoc提取,也可以嵌入HTML命令,詳細參照javadoc的文法。

    編程風格:第一個字母大寫來表示一個類的名稱,第一個字母小寫來表示其他的如方法,資料成員,變數等;對所有都一樣的是,如果一個名稱裡面有多個單詞,不要用下滑線,直接連接在一起,但後面的單詞首字母都採用大寫。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.