java基礎(一)--一切都是對象

這是對java的再一次整合學習,在看《JAVA編程思想》後的一些記錄;理解不當歡迎指正;java

1.用引用操做對象,你擁有一個引用,並不須要有一個對象與之關聯:數據庫

eg:String s;編程

這裏建立的只是引用,並非對象;這裏其實至關於只是建立一個指針(有些不太恰當,但便於理解),但並無一個明確指向;數組

安全的建立:String s = "abc";  或者String s = new String("abc");安全

2.存儲:學習

a.寄存器:這是最快的存儲區;寄存器根據需求分配,不能直接控制指針

b.堆棧:位於通用RAM中,能夠經過堆棧指針從處理器得到支持;通常對對象的引用的存儲;須要知道確切的生命週期;對象

c.堆:一種通用的內存池,用於存放全部的JAVA對象;不須要知道生命週期;生命週期

d.常量存儲:常量值內存

e.非RAM存儲:流對象和持久化對象(在其餘地方存儲,數據庫)

3.數組:

java確保數據組會被初始化,並且不能在它的範圍以外被訪問。這種範圍檢查,是以每一個數組上少許的內存開銷及運行時的下表檢查爲代價;

a:默認沒有初始化爲null;一旦java看到null,就知道這個引用尚未指向某個對象。

b:建立用來存放基本數據類型的數組;爲了確保初始化,置爲0;

4.做用域:做用域的位置有花括號決定

在C和C++中將一個較大的做用域的變量「隱藏」起來,java中不行:

eg:java中報錯,編譯器將報告x已經定義過;

{

  int x = 12;

  {

    int x = 96;

  }

}

a.對象的做用域:java對象不具有和基本類型同樣的生命週期;當new一個對象時,它能夠存活在做用域以外

{

  String s = new String("abc");

}

引用s在做用域終點就消失了。而,s指向的對象仍然佔據內存;

爲了不「內存泄漏」,java自帶垃圾回收機制。

5.static關鍵字:

兩種狀況:第一種,只想爲某特定域分配單一存儲空間,不用考慮建立多少對象,或者不建立對象;

第二種,但願某個方法不包含與它的類的任何對象關聯在一塊兒,即沒建立對象能夠調用方法;

就是一個類定義了一個static數據成員,無論建立幾個該類對象,都不會再對該成員分配空間;全部對象共享一塊這一個數據成員;

6.javadoc:這是爲了方便管理程序,生成的註釋文檔;需本身配置;

相關文章
相關標籤/搜索