黑马程序员技术交流社区

标题: 内存地址值分配规则 [打印本页]

作者: 杨华东    时间: 2012-10-23 22:33
标题: 内存地址值分配规则
对象的内存地址值是整数吗?别那么急着回答。。。。。想好再说。。。

Java中如何精确算出不同对象的地址值??

求大神帮忙。。。。元芳谢过。。。
作者: 樊鹏飞    时间: 2012-10-23 22:58
是整数   可以通过hashCode()方法获取
以下代码你可以看下:
  1. public  class Demo
  2. {
  3.      public static void main(String[] args){
  4.                Test t1 = new Test();
  5.            Test t2 = new Test();
  6.                    System.out.println("t1的内存地址:"+t1.hashCode());
  7.                    System.out.println("t1的内存地址:"+Integer.toHexString(t1.hashCode()));//十六进制形式
  8.                    System.out.println("t2的内存地址:"+t2.hashCode());
  9.          }
  10. }

  11. class Test
  12. {
  13.         private int id;
  14.         private String name;

  15.         public Test(){}

  16.         public Test(int id,String name){
  17.             this.id = id;
  18.                 this.name = name;
  19.         }
  20. }
复制代码

作者: 杨华东    时间: 2012-10-23 23:05
樊鹏飞 发表于 2012-10-23 22:58
是整数   可以通过hashCode()方法获取
以下代码你可以看下:

大人,元芳很明确的告诉您 您错了 哈希码值与内存地址值 完全两个概念

作者: 樊鹏飞    时间: 2012-10-23 23:09
杨华东 发表于 2012-10-23 23:05
大人,元芳很明确的告诉您 您错了 哈希码值与内存地址值 完全两个概念

好吧  受教了
作者: 陈琦    时间: 2012-10-23 23:30
JAVA中不是由十六进制的数字表示内存地址么




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2