java中数据类型:
与c/c++中有所不同的是,我们这里需要关注的是它 的引用类型
在java中,常量的数据类型保存在栈中,引用的数据类型在堆中:
下面举例讲一讲java中的二维数组:
int [][]array= new int [10][20]
在这里array是一个变量名,它本身是一个常量,存放于栈区,而数组里面的元素它们是引用类型的变量,存放于堆区之中,是由array“指引”出的,其中[x]array
是由array
引出的,[x][y]array
是由[x]array
引出的;
再举个例子:
int [][]array2 = new int [][]{{1,2,4},{3}}//{1,2,4}第0行,{3}属于第1行
注意:
每一个元素都是动态new出来的,在java中只有4个元素,(而在c++中有6个元素未初始化的用0填充,这点java与c++不同)
再举两个例子来对引用进行理解:
String str1 = "ABC"
str1 = "cde"
str1为常量,在栈里面,ABC
为引用类型,存储于堆里面,上面这两句的意思
栈中的str1指向了堆中的ABC
所在的地方,而后str1又指向了cde
所在的地方;
Object obj = new Object();
其中,obj是一个变量,它指向new Object()这个类对象的地址,这个地址在堆里面