java 成員變量以及局部變量的區別及存儲

成員變量:1.存儲在類中,在方法之外
2.初始化有默認值
3.值存儲在堆中
4.生命週期:當對象爲null時,由jvm中垃圾機不定時的回收,但也不是立刻回收

局部變量:1.存儲在方法之中
2.初始化沒有默認值
3.值存儲在棧中
4.當方法被調用時,局部變量就存在,當方法完成時候,局部變量消失

成員變量例下:
基本數據類型: int[] arr =new int [3];
arr[0]=1; arr[1]=2; arr[2]=3;
存儲如下:這裏寫圖片描述

引用數據類型:

一維數組:
Cell [] c=new Cell [3]; //中括號代表創建元素,小括號代表創建對象
c[0]=new Cell();c[1]=new Cell(4,5);c[2]=new Cell(4,6);//引用存儲的是地址,如這裏的c,c1[0],c[1],c[2]等存儲的是地址。重要的話講三遍
存儲如下:這裏寫圖片描述

二維數組:

Cell[][]c1=new Cell[3][];
c1[0]=new Cell[3];
c1[1]=new Cell[4];
c1[1]=new Cell[7];//引用存儲的是地址,如這裏的c1,c1[0],c1[1],c1[2]等存儲的是地址。重要的話講三遍

代表的意思如下:創建了Cell[]類型的數組c1,數組c1中包含三個元素c1[0],c1[1],c1[2]。
c1[0]中包含:3個Cell類型的對象 new Cell(); new Cell(); new Cell();
c1[1]中包含:4個Cell類型的對象 new Cell(); new Cell(); new Cell(); new Cell();
c1[2]中包含:7個Cell類型的對象 new Cell(); new Cell(); new Cell();
new Cell(); new Cell(); new Cell(); new Cell();
當new Cell[個數] ,三者的創建對象個數相同時: 如 個數爲4
上面可以簡寫成:Cell [][]c1=new Cell[3][4] ;

局部變量例下: 類似上面,只是存儲在棧中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章