一切皆是對象!

最近從新開始讀《Java編程思想》,系統的複習一下Java基礎知識,只有打好了堅實的基礎,纔能有進一步的提升。程序員

在讀的過程當中發現好多東西又有了更深的理解,還有些東西已經遺忘,爲了不再次遺忘,在這裏簡單的作一些記錄,以備之後查閱。編程

1.       在Java裏一切都被視爲對象,但操縱的標識符其實是一個引用,能夠將這一情緒想象成遙控器和電視機,只要握住這個遙控器,就能保持與電視機的鏈接。當有人想改變頻道或者減少音量時,實際操縱的知識遙控器(引用),再由遙控器來調控電視機(對象)。session

2.       對象存儲在什麼地方?hibernate

1)  寄存器,這是最快的存儲區,處在處理器內部。對象

2)  堆棧,位於通用RAM(隨機訪問存儲器)中。內存

3)  堆,一種通用的內存池,也位於RAM區,堆不一樣於堆棧的地方是編譯器不須要知道存儲的數據在堆裏存活多長時間。編譯器

4)  常量存儲,常量一般直接存儲在程序代碼內部。hash

5)  非RAM存儲,例如流對象和持久化對象。io

3.       全部數值類型都有正負號,因此不要試圖去尋找無符號的數值類型。編譯

4.       Java有一個垃圾回收器,用來監視new建立的全部對象,並辨別哪些對象不會再被使用,隨後就會釋放這些對象的內存空間,以便供其餘新的對象使用。也就 是說你根本不須要擔憂內存回收問題。你只須要建立對象,一旦再也不使用,他們就會被自行回收,這樣作就消除了內存泄露的問題(是因爲程序員忘記釋放內存引發 的)。

在項目中遇到hibernate報錯,提示內存中已存在一個與當前提交的對象主鍵相同的對象,發生衝突,這就是因爲沒有清楚內存中存在的對象引發,能夠用session.clear()來清除內存中的對象(以hashmap的方式存放在內存中)。

5.       在Java中你所作的所有工做就是定義類,建立這些類的對象,以及發送消息給這些對象。

6.       若是類的某個成員變量是基本類型,即便沒有進行初始化,Java也會在對象實例化的時候爲這些變量賦一個默認值。默認值只是針對全局變量的,局部變量必須手動進行初始化。

7.       方法名和參數合起來惟一的標識某一個方法,Java的方法只能做爲類的一部分來建立,且方法只能經過類對象來調用。

8.       在Java中向方法傳遞參數是,若是參數是基本類型,傳遞的就是參數裏面的值,當參數是對象的時候,其實傳遞的是對象的引用,而不是對象的值。

9.       Return包括兩方面的意思:首先它表明「已經作完,離開此方法」。其次,若是此方法產生了一個值,這個值要放在return以後返回。當方法的返回類 型是void時,return的做用只是用來退出方法。也就是說是用return能夠在方法的任何地方返回,而不須要非要等到方法結束。

10.       當建立類的時候,就是在表述那個累的對象的外觀行爲。除非用new來建立這個對象的實例,不然,實際上並未得到任何對象。執行new來建立對象的時候,數據存儲空間才被分配,其方法才供外界調用。

11.       Static關鍵字可使它修飾的方法不用經過建立類對象就能夠直接使用類名來調用。Static修飾的變量只佔用一分內存空間,不管建立幾個對象,他們 都共用一個static變量。由於一個static字段對每一個類來講都只有一份存儲空間,而非static字段則是每一個對象都有一份存儲空間。可是若是 static用於某個方法,差異沒那麼大,static方法的一個重要用法就是在不建立任何對象的前提下就能夠調用它。

相關文章
相關標籤/搜索