亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

基于Java 數組內存分配的相關問題

2019-11-26 16:05:18
字體:
來源:轉載
供稿:網友

可能Java 數組大家都很熟悉,最近我遇到了一個關于Java 數組內存分配的問題。
呵呵。突然就發現許多書上“基本數據類型存儲在棧內存當中,對象則保存在堆內存”這句話完全是錯誤的。下面是個簡單的例子代碼:

復制代碼 代碼如下:

public class Test {
    public static void main(String[] argv) {
// 靜態初始化數組
String[] names = { "Michael", "Orson", "Andrew" };
// 動態初始化數組
String[] animal = new String[4];
// 讓animal 指向 namens 數組所引用的數組
names = animal;

System.out.println(names.length);
System.out.println(animal.length);
    }
}


“Java 數組大小是不能改變的”這可能大家都聽過,那上面這段代碼就有問題了,animal [] 長度為4,而names [] 數組的長度只有3,但是經過一個賦值語句,兩個數組的大小就都變為4了。這不是改變了數組的大小嗎? 問題就這樣擋在面前了!好吧,問問技術前輩吧,就這樣對數組的存儲方式有了全新的認識。下面是我的一點理解:(如果有錯誤的,剛好被大神你看到了,也請你能夠指出來。)
上面的的 names 和 animal 不代表這個數組對象,而僅僅是數組的變量而已,和C里面的指針是一樣的,這樣的變量叫做引用變量。數組對象是保存在堆內存當中,大小當然是不能改變的,但是數組變量卻能夠指向其他的數組對象,可以看看下面這個圖:

藍虛線是賦值語句 names = animal; 之前 names 和 animal 數組變量指向的堆內存當中數組對象; 紅線是是賦值語句 names = animal;之后 names 和 animal 數組變量都同時指向一個數組對象。當然這時候 Java 垃圾回收機制這時候就會發現那個沒人引用的數組對象然后把它帶走。 從上面還可以看到,“Michael”,"Orson","Andrew" 這些都是基本的數據類型吧。但是他們卻存儲在堆內存當中。  實際上應該這樣說:局部變量放在棧內存當中,(像上面的 names[],animal[] 這種引用類型的變量,還有一些基本類型的變量),但應用變量所引用的對象是保存是堆內存當中的。(包括數組還有一些我們平常寫的普通的類對象)Java在堆內存當中的對象通常是不允許直接訪問的,但你可以想到直接訪問的后果。為了訪問堆內存當中的對象,這時候就需要引用變量這個中介。什么時候Java存儲在棧內存中的變量是僅僅是引用變量? 什么時候它又換了身份變為貨真價實的JAVA對象納?嗯,看看下面這個例子:
復制代碼 代碼如下:

public class Animal {
private String name;
private int age;Animal(String name, int age) {
    this.name = name;
    this.age = age;
}public void info() {
    System.out.println(name + " " + age);
}
    }
public class Test {    public static void main(String[] argv) {
// 動態初始化數組
Animal[] animal = new Animal[2];
Animal cat = new Animal("cat", 1);
Animal dog = new Animal("dog", 2);
animal[0] = dog;
animal[1] = cat;// 當數組變量引用對象的方法(或者屬性)的時候,它就變為實際的Java 對象
System.out.println(animal.length);
//dog 這個原本存儲在棧內存當中的對象引用通過調用對象的方法變為實際的對象
dog.info();
animal[0].info();
    }
}

只有當棧內存中的引用變量調用了對象的方法或者是指向了對象的屬性的時候,它就從變量真正成了對象了。(比如上面例子中的 cat,dog 對象引用變量,animal[]數組變量)。       通過animal[0] = dog;
animal[1] = cat;       使得兩個變量都指向了存儲在堆內存當中的對象,所以他們倆個打印出來的信息是一模一樣的.

上圖中藍線是賦值語句:        animal[0] = dog;
animal[1] = cat;          之前的變量指向的狀態,紅虛線是賦值語句之后的狀態,animal[0]和dog ,animal[1] 和cat 所指向的都是相同的堆內存空間。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品情侣自拍| 国产精品www色诱视频| 亚洲精品第一国产综合精品| www国产亚洲精品久久网站| 一本色道久久综合亚洲精品小说| 欧美寡妇偷汉性猛交| 久久夜精品va视频免费观看| 欧美性jizz18性欧美| 欧美成人激情视频免费观看| 亚洲欧洲日产国码av系列天堂| 国产香蕉97碰碰久久人人| 波霸ol色综合久久| 4438全国成人免费| 国产91精品视频在线观看| 成人深夜直播免费观看| 全球成人中文在线| 日本精品久久久| 久久天堂av综合合色| 国产日韩专区在线| 欧美在线免费视频| 成年无码av片在线| 欧美日韩视频免费播放| 综合国产在线观看| 亚洲国产97在线精品一区| 欧美丰满片xxx777| 欧美成人网在线| 亚洲福利视频在线| 北条麻妃久久精品| 国产日韩在线观看av| 97久久久久久| 久久久久久高潮国产精品视| 欧美三级xxx| 久久精品国亚洲| 色偷偷偷亚洲综合网另类| 欧美亚洲一级片| 伊人一区二区三区久久精品| 亚洲综合第一页| 久久久电影免费观看完整版| 日韩免费看的电影电视剧大全| 亚洲欧美在线磁力| 热久久这里只有精品| 中文字幕亚洲自拍| 国产精品 欧美在线| 久久久www成人免费精品张筱雨| 国产亚洲精品一区二555| 亚洲人成电影在线播放| 日韩欧美在线免费观看| 国产精品欧美风情| 日韩在线观看视频免费| 92版电视剧仙鹤神针在线观看| 亚洲aaa激情| 欧美成人午夜剧场免费观看| 亚洲国产精品久久91精品| 日韩av在线一区| 日韩电影免费观看在线观看| 亚洲美女av网站| 26uuu久久噜噜噜噜| 91在线观看免费| 国产99视频精品免视看7| 国产久一一精品| 米奇精品一区二区三区在线观看| 性欧美亚洲xxxx乳在线观看| 亚洲另类xxxx| 免费av在线一区| 久久成人综合视频| 久久天天躁狠狠躁老女人| 97在线免费观看| 日韩一二三在线视频播| 成人妇女免费播放久久久| 久久av.com| 97在线看免费观看视频在线观看| 精品女同一区二区三区在线播放| 国产精品免费久久久久影院| 中国日韩欧美久久久久久久久| 日韩一区在线视频| 久久影院模特热| 精品久久久久久久久久久久| 国产精品一区二区三区在线播放| 国产精品igao视频| 国产精品免费电影| 精品动漫一区二区三区| 97在线视频国产| 国内精品久久久久久中文字幕| 久久亚洲精品网站| 日本精品免费一区二区三区| 午夜精品在线观看| 久久国产精品影视| 久久偷看各类女兵18女厕嘘嘘| 97av在线视频免费播放| 欧美大片欧美激情性色a∨久久| 97精品免费视频| 91成人在线播放| 亚洲欧美资源在线| 日韩最新av在线| 日韩欧美a级成人黄色| 亚洲精品国产电影| 日韩视频中文字幕| 国产婷婷97碰碰久久人人蜜臀| 欧美一级电影久久| 久久精品国产69国产精品亚洲| 欧洲亚洲女同hd| 精品美女永久免费视频| 丝袜情趣国产精品| 在线观看国产精品日韩av| 69视频在线播放| 自拍偷拍亚洲区| 久久色免费在线视频| 久久天天躁狠狠躁夜夜爽蜜月| 久久影视三级福利片| 免费97视频在线精品国自产拍| 久久久人成影片一区二区三区观看| 欧美性猛交xxxx黑人| 亚洲人av在线影院| 亚洲一区二区少妇| 国产自产女人91一区在线观看| 国产精品久久婷婷六月丁香| 丝袜情趣国产精品| 国产视频丨精品|在线观看| 96sao精品视频在线观看| 欧美成人午夜激情视频| 一区二区在线视频播放| 隔壁老王国产在线精品| 亚洲精品91美女久久久久久久| 91精品国产色综合| 日韩精品视频中文在线观看| 欧美日韩ab片| 美女扒开尿口让男人操亚洲视频网站| 国产精品精品一区二区三区午夜版| 成人中心免费视频| 亚洲人成电影在线播放| 欧美日韩久久久久| 日本不卡免费高清视频| 日韩av快播网址| 亚洲国产精品高清久久久| 92版电视剧仙鹤神针在线观看| 国产亚洲精品激情久久| 欧美日韩人人澡狠狠躁视频| 欧美日韩在线观看视频| 日韩中文字幕视频| 日韩国产精品视频| 国产精品mp4| 久久精品视频中文字幕| 欧美亚洲国产成人精品| 日韩一级裸体免费视频| 激情成人在线视频| 欧美最近摘花xxxx摘花| 亚洲欧洲一区二区三区久久| 亚洲аv电影天堂网| 国产91在线视频| 欧美成人免费大片| 欧美日韩加勒比精品一区| 亚洲福利视频免费观看| 亚洲精品福利资源站| 亚洲韩国青草视频| 日本国产一区二区三区| 青青精品视频播放| 555www成人网| 国产精品日韩在线播放| 久久资源免费视频| 日韩欧美在线观看视频| 欧美激情视频在线观看| 国产欧美日韩专区发布| 欧美孕妇与黑人孕交| 久久777国产线看观看精品|