java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法
目录
方法二:使用System.identityHashCode方法
方法一:使用hashCode方法
在Java中,每个对象都有一个hashCode()方法(由Object类提供),它返回一个对象的哈希码(即对象的内存地址)。我们可以通过调用hashCode方法来获取对象的内存地址,并将其打印出来。
public class Address {
public static void main(String[] args) {
Address address=new Address();
System.out.println(address.hashCode());
}
}
但是,存在一些类会重写他们的hashCode()方法,此时,该方法返回的就不是实际的地址值了,所以,一般不推荐使用 hashCode()方法来获取真实的内存地址
方法二:使用System.identityHashCode方法
Java还提供了System类中的identityHashCode方法,它返回一个对象的身份哈希码(即对象的内存地址)。不守hashCode()重写的影响
public class Address {
public static void main(String[] args) {
Address address=new Address();
System.out.println("address hashCode:"+ address.hashCode());
System.out.println("address 真实内存地址:"+ System.identityHashCode(address));
String s1="str1";
System.out.println("s1 hashCode:"+s1.hashCode());
System.out.println("s1 真实内存地址:"+System.identityHashCode(s1));
}
}
运行结果:
从运行结果也看出,重写hashCode后,hashCode打印的就不是真实的物理地址了。
总结
通过使用hashCode或System.identityHashCode方法,我们可以在Java中打印出对象的内存地址。这些方法对于调试和内存管理非常有用。但是,hashCode方法可能会被重写,因此如果您需要获取对象的实际内存地址,请使用System.identityHashCode方法。
java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法java获取对象的内存地址(打印出内存地址) java获取对象的内存地址(打印出内存地址),java 怎么把内存地址打出来,System.identityHashCode,使用hashCode方法