既然说 数组 是引用 类型
那么 int[]a=new int[]{8,9}; 那么a 实际是放在堆中,然后在栈中 放着 它的引用我想问的 是 那么 它的值a[0]和a[1] 是放在堆中吗?
a[0]是int 类型 它应该是放在栈中的吧?
那么a在堆中 那 它到底放着什么数据?
不会是反过来放着 a[0]和a[1]的引用吧?
可能我说的比较乱
我的意思是 不能 理解 a是引用类型放在堆中,可它的元素却是基本类型 放在 栈中
int[]a=new int[]{1,2}这段代码 JVM是怎么处理 8和9这两个值的?
那么 int[]a=new int[]{8,9}; 那么a 实际是放在堆中,然后在栈中 放着 它的引用我想问的 是 那么 它的值a[0]和a[1] 是放在堆中吗?
a[0]是int 类型 它应该是放在栈中的吧?
那么a在堆中 那 它到底放着什么数据?
不会是反过来放着 a[0]和a[1]的引用吧?
可能我说的比较乱
我的意思是 不能 理解 a是引用类型放在堆中,可它的元素却是基本类型 放在 栈中
int[]a=new int[]{1,2}这段代码 JVM是怎么处理 8和9这两个值的?
那为什么 我 int[] a=new int[]{6,5,7};
int[]b=new int[]{8,5,9};
//输出true
System.out.println(a[1]==b[1]);
String[] str1=new String[]{"不懂","李刚"};
String[] str2=new String[]{"不懂","李刚"};
//输出true
System.out.println(str1[1]==str2[1]);
这里我明明创建了分别创建了 不同的 对象 str1和str2 但它们怎么相等的呢?
它们在栈中的引用如果指向堆 那 应该 指向两个不同的 堆啊!
第2个因为串池的原因也是true