從這一章的標題咱們就能夠很容易知道這章主要講的仍是做爲Java語言最大的一個特性( 面向對象)。這個跟本身開始學習Java不一樣,一開始學習一門語言都是直接從語法開始,可是這本書是從Java的思想開始,這也是這本書的魔力所在。因此咱們學習的更應該是這本書的思想,而不是僅僅停留在語法的正確與否。
咱們去操做elements of memory使用引用(reference),這裏面的引用就是咱們熟悉的=右邊的變量。
相信使用過C語言這類面向過程的語言都會有這樣的想法,在咱們使用一個變量的時候(例如int i = 0),咱們會覺得i就是0,可是在Java裏面i存儲在一個區域,0存在另外一個區域(Java內存區域待會會談到)。理解好這一點就更容易理解相似C語言中的值傳參和引用傳參。
本書使用了一個很好的例子,將對象比做電視機,將引用比做遙控器,而等號就是就是紅外線將他們鏈接的橋樑。因此咱們能夠實現遠程遙控,因此實質上咱們是經過引用去使用對象,而不是直接去使用對象。
爲了更好的理解這個方式,書中舉了一個例子java
String s
在這個時候咱們只是定義了一個引用,可是沒有定義一個對象。c++
有了引用以後就是咱們在對對象操做的時候咱們必定首先要去建立一個對象,這個在initialization and cleanup 章節會有更好的說明。
這裏面最主要的關鍵字就是new這個操做符。學過Java的這裏不想再去多去贅述。數據庫
1.Register.寄存器本書沒有作不少說明,不作解釋
2.The stack.棧,這個區域在computer的RAM區域裏面。有一個stack pointer,這個指針的上移來刪除釋放內存,下移來存儲。重點就是在於,這裏面經常用來存放前面所說的reference。
3.The heap.堆,這個區域仍是在於computer的RAM區域裏面。跟棧不一樣的是咱們不須要知道使用內存的時候須要內存的大小。重點就是這裏面經常用來存儲對象。
4.Constant storage.常量存儲,這個區域在computer的ROM區域。
5.Non-RAM storage.這裏面存儲一些程序沒有運行須要存儲的數據。本書舉了兩個例子,流,還有一個就是持久化的存儲就是咱們常說的存儲在數據庫。編程
基礎數據類型,這裏不作太多解釋,直接百度就行。數組
high-precision numbers
高精度計算,缺點就是計算慢。 不是使用操做符去計算,而是調用方法計算 主要有兩個類(相似包裝類) BigInteger BigDecimal
重點就是在於Java的設計是爲了安全性,因此數組在c或者c++裏面的功能在Java裏面沒有,之後章節會有更細緻的說明,這裏不作多餘解釋。安全
小知識點:若是沒有引用一個對象,基礎類型Java會給一個0,引用類型會給一個null。以下圖
Primitive type Default boolean false char ‘\u0000’ (null) byte (byte)0 short (short)0 int 0 long 0L float 0.0f double 0.0d
這個章節比較簡單,主要就是建立對象和對象裏面的具體內容。學習
1.名字的建立必定要見名知意,由於這樣的代碼纔是可維護的代碼,纔是長期發展的代碼。
2.咱們常常說,Java是面向對象的語言。可是咱們必定須要用到跟對象無關的變量,咱們只是單純的使用一些變量和一些方法。因此就有了static關鍵字的設計。ui
1.首先由於要知足跟對象沒有很大的關係,換一句話說就是,無論我有沒有建立對象我均可以使用這些方法,因此使用static修飾的變量和方法,必定是每個對象公用的。 2.要實現跟對象無關,那麼咱們在加載類的時候就應該分配內存給這些static修飾的變量和方法。
編程是一個手工活,因此必定要多練,因此咱們開始建立第一個Java程序。
1.當咱們建立Java程序的時候咱們要用到不少其餘Java已經給咱們設計好的一些庫,同時Java.long裏面的庫是默認都是在每個Java文件,這些是不須要咱們進行導入的。設計
本章的聯繫很明顯。首先從Java是面對對象的語言出發,咱們去討論對象。那麼咱們要使用對象,就首先應該知道怎麼去控制對象,因此有了reference。那麼在咱們去控制對象,首先應該這個對象應該存在,因此咱們必定須要建立對象,使用new。有了建立咱們必定須要去釋放內存,Java本身有垃圾處理機制,這部分不須要咱們本身去控制。而後把對象綜合起來組成一個程序,這裏面也講到一個面對更多的問題,因此有了static這個關鍵字。最後面是本身寫一個Java程序,裏面有些關鍵信息。指針