① java基本數據域
基本數據域中的類型是java的基本數據類型,不是對象(不過新版本5.0以後可以和相應的類替代使用)。
② java域對象是什麼意思
也是一個屬性,不過這個屬性是一個對象,不是基本數據類型。
如單例模式中的域對象:
private Test instance;//Test是當前類,instance就是當前類的域對象,普通域寫法:
private String str;
③ 什麼是數據域data
你說的是數據結構裡面的?節點內容?是不是包括指針域和數據域?如果是這個的話那就是指這個節點保存的數據內容
④ java里域是什麼公有域又是什麼
域就是類中的成員變數,有時也叫欄位,屬性都是同一個意思。公有域就是能在其它類中直接訪問的域,也就是帶有域。例如:
classTest{
privateinta;//這是一個私有域,只能在本類訪問
publicintb;//這就是一個公有域了,可以在其它類中直接訪問
//這是保護域,這類域可以在本類及其子類,還有與在本類所在同一包下的其類
//中直接訪問
protectedintc;
}
⑤ 什麼是數據域,什麼是指針域
數據域是結點中存儲數據元素的部分。指針域是結點中存儲數據元素之間的鏈接信息即下一個結點地址的部分。
鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。
(5)java數據域是什麼意思擴展閱讀:
由於的鏈表結點中除包含保存數據元素的自身信息的數據域外,還有表示數據元素之間的鏈接信息的指針域,因此比順序存儲結構的存儲密度低,存儲空間的利用率也較低。
邏輯上相鄰的數據元素在物理上不一定相鄰,可用於存儲線性表、樹、圖等多種邏輯結構。插入、刪除操作比較靈活,不必移動數據元素,只要改變結點中的指針域的值即可。
⑥ java內存模型和運行時的數據區域的區別
(1).程序計數器:
是一塊較小的內存空間,其作用可以看作是當前線程所執行的位元組碼的行號指示器,位元組碼解析器工作時通過改變程序計數器的值來選取下一條需要執行的位元組碼指令。程序的分支、循環、跳轉、異常處理以及線程恢復等基礎功能都是依賴程序計數器來完成。
Java虛擬機的多線程是通過線程輪流切換並分配處理器執行時間片來實現,在任何一個時刻,一個處理器只會執行一條線程指令,因此,為了確保線程切換之後能恢復到正確的執行位置,每條線程都需要一個獨立的程序計數器,因此程序計數器是線程私有的內存。
程序計數器是java虛擬機中唯一一個沒有規定任何內存溢出OutOfMemoryError的內存區域。
(2).java虛擬機棧:
Java虛擬機棧也是線程私有的,它的生命周期與線程相同。虛擬機棧描述的是java方法執行的內存模型:每個方法被執行時都會同時創建一個棧幀用於存放局部變數表、操作數棧、動態連接和方法出口等信息。每個方法被調用直至執行完成過程,就對應著一個棧幀在虛擬機中從入棧到出棧的過程。
Java虛擬機棧的局部變數表存放了編譯器可知的8種java基本類型數據、對象引用(注意不是對象實例本身)、方法返回地址returnAddress。
Java虛擬機棧的局部變數表空間單位是槽(Slot),其中64位長度的double和long類型會佔用兩個slot,其餘的數據類型只佔用一個slot。局部變數表所需內存空間在編譯期間完成分配,當進入一個方法時,該方法需要在幀中分配多大的局部變數空間是完全確定的,在方法運行期間不會改變局部變數表的大小。
Java虛擬機棧有兩種異常狀況:如果線程請求的棧深度大於虛擬機所允許的最大深度時,拋出StackOverflowError異常;如果虛擬機棧可以動態擴展,當擴展時無法申請到足夠內存時會拋出OutOfMemoryError異常。
(3).本地方法棧:
本地方法棧與java虛擬機棧作用非常類似,其區別是:java虛擬機棧是為虛擬機執行java方法服務,而本地方法棧是為虛擬機調用的操作系統本地方法服務。
Java虛擬機規范沒有對本地方法棧的實現和數據結構做強制規定,Sun HotSpot虛擬機直接把java虛擬機棧和本地方法棧合二為一。
與java虛擬機棧類似,本地方法棧也會拋出StackOverflowError異常和OutOfMemoryError異常。
(4).堆:
堆是java虛擬機所管理的內存區域中最大一塊,java堆是被所有線程所共享的一塊內存區域,在java虛擬機啟動時創建,堆內存的唯一目的就是存放對象實例。幾乎所有的對象實例都是在堆分配內存。
Java堆是垃圾收集器管理的主要區域,從垃圾回收的角度看,由於現在的垃圾收集器基本都採用的是分代收集演算法,因此java堆還可以初步細分為新生代和年老代。
Java虛擬機規范規定,堆可以處於物理上不連續的內存空間中,只要邏輯上是連續的即可。在實現上即可以是固定大小的,也可以是可動態擴展的。如果在堆中沒有內存完成實例分配,並且堆大小也無法在擴展時,將會拋出OutOfMemoryError異常。
(5).方法區:
方法區與堆一樣,是被各個線程共享的內存區域,它用於存儲已被虛擬機載入的類信息、常量、靜態變數、即時編譯後的代碼等數據。雖然java虛擬機規范把方法區描述為堆的一個邏輯部分,但是方法區卻有一個別名叫Non-Heap(非堆)。
Sun HotSpot虛擬機把方法區叫永久代(Permanent Generation),方法區中最重要的部分是運行時常量池。Class文件中除了有類的版本、欄位、方法、介面等描述信息外,還有一項信息是常量池,用於存放編譯期生成的各種字面變數、符號引用、直接引用等,這些內容將在類載入後存放到方法區的運行時常量池中,另外在運行期間也可以將新的常量存放到常量池中,如String的intern()方法。
方法區和運行時常量池在無法滿足內存分配時,也會拋出OutOfMemoryError異常。
(6).直接內存:
直接內存並不是java虛擬機運行時數據區的一部分,也不是java虛擬機規范中定義的內存區域,但是在java開發中還是會使用到。
JDK1.4中新引入的NIO(new I/O),引入了一種基於通道(Channel)和緩沖區(Buffer)的I/O方式,可以使用操作系統本地方法庫直接分配堆外內存,然後通過一個存儲在java堆裡面的DirectByteBuffer對象作為堆外直接內存的引用進行操作,避免了java堆內存和本地直接內存間的數據拷貝,可以顯著提高性能。
雖然直接內存並不直接收到java虛擬機內存影響,但是如果java虛擬機各個內存區域總和大於物理內存限制,從而導致直接內存不足,動態擴展時也會拋出OutOfMemoryError異常。
java虛擬機內存結構中的程序計數器、虛擬機棧和本地方法棧這三個區域隨線程創建而生,隨線程銷毀而滅,因此這三個區域的內存分配和回收是確定的,java垃圾收集器重點關注的是java虛擬機的堆內存和方法區內存。
⑦ java中域和變數有什麼樣的區別
基本數據域中的類型是java的基本數據類型,不是對象
變數是對象
⑧ java域是什麼.
java介面中的域是指變數、屬性等成員。
顯式聲明的 public final static String NAME;//變數
隱式聲明的 String NAME;//變數
field,域是一種屬性,可以是一個類變數,一個對象變數,一個對象方法變數或者是一個函數的參數介面中的變數默認是public final static 的,因此在interface中聲明的變數建議大寫的,聲明的時候必須初始化,使用的時候不能被更改,只能作右值.
⑨ java數組為什麼有方法和數據域比如int[5].clone(),這不是類才有的屬性嗎
數組是屬於對象的,所有會有方法和數據,基本類型只有 boolean, byte, short, char, int, long, float, double。
你可以用這段代碼測試下:
System.out.println(new int[5] instanceof Object);
⑩ 為什麼java中介面的所有數據域都是public final static的能舉一個現實的例子說明么
介面中的的屬性,都是public static final 修飾的,規范
public static final String a = "123456";
public Object getById(PK id);
public void deleteById(PK id);
public void save(E entity);
介面中的方法,是沒有實現的,誰繼承它,誰就會重寫它,方便好用
不懂就去網上差點介面的基礎知識吧!