一、(1)儘管一切都看做是對象,但操做的標識符其實是對象的一個「引用」。能夠將這一情形想像成遙控器(引用)來操縱電視機(對象)。java
(2)擁有一個引用,單不必定須要有一個對象與它關聯,如:String s;若是此時向s發送一個消息,就會返回一個運行時錯誤。因此一種安全的作法是,建立一個引用的同時順便進行初始化,如string s ="abc";數組
1(1)一旦建立了一個引用,就但願它能與一個新的對象相關聯,一般用new操做符來實現這一目的。安全
2.2.1存儲到什麼地方命令行
一、寄存器code
二、堆棧對象
三、堆生命週期
四、常量存儲內存
五、非RAM存儲作用域
2.2.2特例:基本類型文檔
一、基本類型具備的包裝類,使得能夠在堆中建立一個非基本對象,用來表示對應的基本類型,如 Character ch = new Character ('c');
java SE5的自動包裝功能將自動地將基本類型轉換爲包裝器類型:Character ch = 'X'
2.2.3Java中的數組
一、java確保數組會被初始化,並且不能在它的範圍職位被訪問,這種方位檢查,是以每一個數組是少許的內存開銷及運行時的下標檢查爲代價的。
二、當建立一個數組對象時,實際上就是建立了一個引用數組,而且每一個引用都會自動被初始化爲一個特定值。
2.3.1做用域
做用域決定了在其內定義的變量名的可見性和生命週期。
2.3.2對象的做用域
一、java對象不具有和基本類型同樣的生命週期,當用new建立一個java對象時,它能夠存活於做用域以外。
二、java有一個垃圾回收器,用來監視用new建立的全部對象,並辨別哪些不會被再引用的對象。隨後釋放這些對象的內存空間,以便供其餘新的對象使用。
2.4.1字段和方法
一、若是字段是對某個對象的引用,那麼必須初始化該引用
二、每一個對象都有用來存儲其字段的空間;普通字段不能在對象間共享
三、若類的某個成員是基本數據類型,即便沒有進行初始化,java也會確保它得到一個默認值。然而局部變量(即非某個類的字段)不會自動被初始化。
一、方法簽名:方法和參數列表惟一標識出某個方法
二、int x = a.f()這種調用方法的行爲一般被稱爲發送消息給對象,f()是消息,a是對象
三、return關鍵字的用法:首先,它表明「已作完,離開此方法」。其次,若是此方法產生了一個值,這個值要放在return語句後面。若返回類型是void,return關鍵字的做用只用用來對出方法。
2.6.1名字可見性
2.6.2運用其餘構建
可使用關鍵字import來準確告訴編譯器想要的類是什麼。
2.6.3static關鍵字
一、使用static關鍵字的場景
(1)只想爲特定域分配單一存儲空間,而不去考慮究竟要建立多少對象,甚至根本就不建立任何對象。
(2)但願某個方法不去與包含它的那個類的任何對象關聯在一塊兒,即沒有建立對象,也能調用這個方法.
二、當聲明一個事物是static時,就意味着這個域或方法不會與包含它的那個類的任何對象關聯在一塊兒。因此,即便從未建立某個類的任何對象,也能夠調用其static方法或訪問其static域。
三、有兩種方法訪問今天事物,一種是直接用類名點,另外一種是經過一個對象去定位,以下:
class StaticTest{ static int i = 47; } StaticTest s1 = new StaticTest(); StaticTest.i s1.i
main方法的args要用來存儲命令行參數