what is the number that it shows when I print out the **this** pointer in java?

java

Solution

As per Docs of toString() method in Object class

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

When

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

When you call toString() on object ,If you ovveride like below ,you get your own implementation

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

Otherwise gives the default implementation,which you are seeing right now

From Object class Source code

Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + '@' + Integer.toHexString(hashCode())

Returns:
a string representation of the object.


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

Problem

This program ``` 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(); } } ``` gives me this output: ``` Hello, World Class = HelloWorld@7c6768 ``` What does `@7c6768` after HelloWorld in the second line mean?

Original source