日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java千百问_06数据结构(014)_java数组如何存储在内存中

發布時間:2025/3/17 java 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java千百问_06数据结构(014)_java数组如何存储在内存中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、數組的內存空間是何時分配的

Java中的數組是用來存儲同一種數據類型的數據結構,一旦初始化完成,即所占的空間就已固定下來,初始化的過程就是分配對應內存空間的過程。即使某個元素被清空,但其所在空間仍然保留,因此數組長度將不能被改變。?
了解什么是數組看這里:java中的數組是什么?
當僅定義一個數組變量(int[] numbers)時,該變量還未指向任何有效的內存,因此不能指定數組的長度,只有對數組進行初始化(為數組元素分配內存空間)后才可以使用。?
數組初始化分為靜態初始化(在定義時就指定數組元素的值,此時不能指定數組長度)和動態初始化(只指定數組長度,由系統分配初始值)。

//靜態初始化 int[] numbers = new int[] { 3, 5, 12, 8, 7 }; String[] names = { "Miracle", "Miracle He" };//使用靜態初始化的簡化形式 //動態初始化 int[] numbers = new int[5]; String[] names = new String[2];
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

建議不要混用靜態初始化和動態初始化,即不要既指定數組的長度的同時又指定每個元素的值。

當初始化完畢后,就可以按索引位置(0~array.length-1)來訪問數組元素了。?
當使用動態初始化時,如在對應的索引位未指定值的話,系統將指定相應數據類型對應的默認值(整數為0,浮點數為0.0,字符為’\u0000’,布爾類型為false,引用類型(包括String)為null)。

public class TestArray {public static void main(String[] args) {String[] names = new String[3];names[0] = "Miracle";names[1] = "Miracle He";/*for(int i = 0; i < names.length;i++) {System.out.print(names[i] + " ");}*///還可以使用foreach來遍歷for(String name : names) {System.out.print(name + " ");}} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

結果如下:?
Miracle Miracle He null?
Miracle Miracle He null

2、數組在內存中如何儲存

首先給出數組(數組引用和數組元素)在內存中的存放形式,如圖:

數組引用變量是存放在棧內存(stack)中,數組元素本質是一個對象,是存放在堆內存(heap)中。通過棧內存中的指針指向對應元素的在堆內存中的位置來實現訪問。?
了解堆和??催@里:[java堆和棧有什么區別][3]?
[3]:?
當數組在初始化時,就會在中分配對應的空間,這個大小是不會因為內部元素的變化而變化,也就是說,如果數組中某個元素被清空,數組占用的內存空間也不會縮小。

存放引用類型數組在內存中如何儲存看這里:引用類型數組在內存中如何儲存


原文地址:http://blog.csdn.net/ooppookid/article/details/51404440

總結

以上是生活随笔為你收集整理的Java千百问_06数据结构(014)_java数组如何存储在内存中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。