本文目錄一覽:
java程序中數據的儲存方法有哪些?
java程序中數據儲存方法如下:
一種是棧內存,另一種是堆內存
(1)在函數中定義的基本類型變量(即基本類型的局部變量)和對象的引用變量(即對象的變量名)都在函數的棧內存中分配;
(2)堆內存用來存放由new創建的對象和數組以及對象的實例變量(即全局變量)。
在函數(代碼塊)中定義一個變量時,java就在棧中為這個變量分配內存空間,當超過變量的作用域後,java會自動釋放掉為該變量所分配的內存空間;
在堆中分配的內存由java虛擬機的自動垃圾回收器來管理
堆和棧的優缺點
堆的優勢是可以動態分配內存大小,生存期也不必事先告訴編譯器,因為它是在運行時動態分配內存的。
缺點就是要在運行時動態分配內存,存取速度較慢;
棧的優勢是,存取速度比堆要快,僅次於直接位於CPU中的寄存器。
java中hashtable怎樣存儲數據和讀取數據
Hashtable-哈希表類\x0d\x0a\x0d\x0a以哈希表的形式存儲數據,數據的形式是鍵值對.\x0d\x0a特點:\x0d\x0a查找速度快,遍歷相對慢\x0d\x0a鍵值不能有空指針和重複數據\x0d\x0a\x0d\x0a創建\x0d\x0aHashtable ht=new \x0d\x0aHashtable();\x0d\x0a\x0d\x0a添值\x0d\x0a\x0d\x0aht.put(1,”Andy”);\x0d\x0aht.put(2,”Bill”);\x0d\x0aht.put(3,”Cindy”);\x0d\x0aht.put(4,”Dell”);\x0d\x0aht.put(5,”Felex”);\x0d\x0aht.put(6,”Edinburg”);\x0d\x0aht.put(7,”Green”);\x0d\x0a\x0d\x0a取值\x0d\x0a\x0d\x0aString str=ht.get(1);\x0d\x0aSystem.out.println(str);// Andy\x0d\x0a\x0d\x0a對鍵進行遍歷\x0d\x0a\x0d\x0aIterator it = ht.keySet().iterator();\x0d\x0a\x0d\x0awhile (it.hasNext()) {\x0d\x0a Integer key = (Integer)it.next();\x0d\x0a \x0d\x0aSystem.out.println(key);\x0d\x0a}\x0d\x0a\x0d\x0a對值進行遍歷\x0d\x0a\x0d\x0aIterator it = ht.values().iterator();\x0d\x0a\x0d\x0awhile (it.hasNext()) {\x0d\x0a String value =(String) it.next();\x0d\x0a \x0d\x0aSystem.out.println(value);\x0d\x0a}\x0d\x0a\x0d\x0a取Hashtable記錄數\x0d\x0a\x0d\x0aHashtable ht=new Hashtable();\x0d\x0a\x0d\x0aht.put(1,”Andy”);\x0d\x0aht.put(2,”Bill”);\x0d\x0aht.put(3,”Cindy”);\x0d\x0aht.put(4,”Dell”);\x0d\x0aht.put(5,”Felex”);\x0d\x0aht.put(6,”Edinburg”);\x0d\x0aht.put(7,”Green”);\x0d\x0a\x0d\x0aint i=ht.size();// 7\x0d\x0a\x0d\x0a刪除元素\x0d\x0a\x0d\x0aHashtable ht=new Hashtable();\x0d\x0a\x0d\x0aht.put(1,”Andy”);\x0d\x0aht.put(2,”Bill”);\x0d\x0aht.put(3,”Cindy”);\x0d\x0aht.put(4,”Dell”);\x0d\x0aht.put(5,”Felex”);\x0d\x0aht.put(6,”Edinburg”);\x0d\x0aht.put(7,”Green”);\x0d\x0a\x0d\x0aht.remove(1);\x0d\x0aht.remove(2);\x0d\x0aht.remove(3);\x0d\x0aht.remove(4);\x0d\x0a\x0d\x0aSystem.out.println(ht.size());// 3\x0d\x0a\x0d\x0aIterator it = ht.values().iterator();\x0d\x0a\x0d\x0awhile (it.hasNext()) {\x0d\x0a // Get value\x0d\x0a String value =(String) \x0d\x0ait.next();\x0d\x0a System.out.println(value);\x0d\x0a}
java存儲方式是哪種
new的對象都是放到堆中,每new一個 都是相當於單獨的一個「xyz」。如果string s1=”xyz” string s2=”xyz” 那就是圖中的第二個,先在棧中創建一個s1,查找棧中有沒有「xyz」 沒有則存儲「xyz」,執行s2的時候 先創建s2 ,然後再棧中查找「xyz」,如果查到,則直接吧s2指向「xyz」。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/279095.html