Java中局部变量int基本类型变量在栈上是如何存储的,是内存地址还是值?
```inta=1;intc=1;System.out.println(System.identityHashCode(a));System.out.println(Sy...
```
int a = 1;
int c = 1;
System.out.println(System.identityHashCode(a));
System.out.println(System.identityHashCode(c));
System.out.println(System.identityHashCode(1));
a = 127;
c = 127;
System.out.println(System.identityHashCode(c));
System.out.println(System.identityHashCode(c));
a = 128;
c = 128;
System.out.println(System.identityHashCode(a));
System.out.println(System.identityHashCode(c));
```
结果:
```
865113938
865113938
865113938
1442407170
1442407170
1028566121
1118140819
```
System.identityHashCode输出的是变量内存地址哈希值?
为什么a变量和c变量的内存地址一样?
128输出的是却不一样,而-128~127之间的输出的是一样的,是不是说明栈上存储的是内存地址呢?
还是说System.identityHashCode输出的不是变量内存地址?
以上的代码输出怎么理解? 展开
int a = 1;
int c = 1;
System.out.println(System.identityHashCode(a));
System.out.println(System.identityHashCode(c));
System.out.println(System.identityHashCode(1));
a = 127;
c = 127;
System.out.println(System.identityHashCode(c));
System.out.println(System.identityHashCode(c));
a = 128;
c = 128;
System.out.println(System.identityHashCode(a));
System.out.println(System.identityHashCode(c));
```
结果:
```
865113938
865113938
865113938
1442407170
1442407170
1028566121
1118140819
```
System.identityHashCode输出的是变量内存地址哈希值?
为什么a变量和c变量的内存地址一样?
128输出的是却不一样,而-128~127之间的输出的是一样的,是不是说明栈上存储的是内存地址呢?
还是说System.identityHashCode输出的不是变量内存地址?
以上的代码输出怎么理解? 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询