当前位置: 首页 > 面试题库 >

当我在Java中打印出** this **指针时,它显示的数字是多少?

戴嘉珍
2023-03-14
问题内容

这个程序

public class HelloWorld{
    public void testFunc(){
        System.out.println("Class = "+this);
    }

    public static void main(String[] args){
        HelloWorld hw = new HelloWorld();
        System.out.println("Hello, World");
        hw.testFunc();
    }
}

给我这个输出:

Hello, World
Class = HelloWorld@7c6768

这是什么@7c6768的HelloWorld后,在第二行是什么意思?


问题答案:

根据Object类中toString()方法的Docs

类Object的toString方法返回一个字符串,该字符串由该对象是其实例的类的名称,符号字符“
@”以及该对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回的字符串等于:

什么时候

 getClass().getName() + '@' + Integer.toHexString(hashCode())

当您在object上调用toString()时,如果您像下面这样使用
ovveride

,则会得到自己的实现

 @Override
  public String toString() {
     //return something 
  }

否则,将提供默认实现,您现在将看到它

来自Object类的源代码

返回对象的字符串表示形式。通常,toString方法返回一个“以文本形式表示”此对象的字符串。结果应该是简洁易懂的陈述,便于人们阅读。建议所有子类都重写此方法。

类Object的toString方法返回一个字符串,该字符串由该对象是其实例的类的名称,符号字符“
@”以及该对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回一个等于以下值的字符串:getClass()。getName()+’@’+
Integer.toHexString(hashCode())

Returns:
a string representation of the object.


    public String  toString() {
         return getClass().getName() + "@" + Integer.toHexString(hashCode());
     }


 类似资料:
  • 我想从给定路径搜索文件 /data/user/0/com.example.fluttersqlite/app_flutter/maindb.db 但我无法在我的android手机上找到我的文件,即使这个目录不存在

  • 问题内容: 在Linux(Debian和Ubuntu)中,如何在C的堆栈指针处输出当前值? 我尝试了google,但未找到任何结果。 问题答案: 不能移植甚至不能保证正常工作的一个技巧是简单地打印出本地地址作为指针。 这实际上将打印出其地址与当前堆栈指针的近似值

  • 但我想使用一个指针,而不是一个简单的变量。能给我点启示吗? 谢谢

  • C++ 类 & 对象 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。 友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针。 下面的实例有助于更好地理解 this 指针的概念:#include <iostream> using namespace std; c

  • 本文向大家介绍java实现的顺时针/逆时针打印矩阵操作示例,包括了java实现的顺时针/逆时针打印矩阵操作示例的使用技巧和注意事项,需要的朋友参考一下 java实现的顺时针/逆时针打印矩阵操作。分享给大家供大家参考,具体如下: 首先呢上面是定义一个工具类, 直接进行使用,有两个方法,一个正序一个倒序 更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java