如何在Java中访问变量的内存地址?

时间:2019-10-09 11:29:51

标签: java oop variables

我编写了这段代码,想查看我从一个类创建的2个对象的内存位置,并创建一个特定变量的实例。

public class StaticFields {

    int a = 12;
    int b = 235;

    public static void main(String[] args) {
      StaticFields obj = new StaticFields();

      int a = obj.a;

      StaticFields obj2 = new StaticFields();

      int c = obj2.a;

       System.out.println(System.identityHashCode(a));
       System.out.println(System.identityHashCode(c));

    }
}


为什么“ a”和“ c”的“ identityHashCode”相同?

谢谢。

1 个答案:

答案 0 :(得分:-2)

两个整数都带有相同的值12。

由于缓存了整数(对于-128中的值,最大值为127),因此返回的两个对象的哈希码值相同。

因为b的值大于127,所以情况并非如此。