java中string类重写的tostring是return this ,this也是内存地址,不应该打印的也是内存地址吗?为什么是字符串?求大佬解释困惑好长时间了,硬是想不通
public static void main(String[] args) {
String sb = new String("iphone");
System.out.println(sb);
System.out.println(sb.toString());
}
java中string类重写的tostring是return this ,this也是内存地址,不应该打印的也是内存地址吗?为什么是字符串?求大佬解释困惑好长时间了,硬是想不通
public static void main(String[] args) {
String sb = new String("iphone");
System.out.println(sb);
System.out.println(sb.toString());
}
String对象中的toString方法 return this. this表示当前对象的意思。
String sb = new String("iphone");
System.out.println(sb);
System.out.println(sb.toString());
从这段代码中,也能看出。sb也是String的对象,最后输出的也是字符串。
所以这没啥问题,String类重写了Object的构造方法,虽然return this,但是默认返回的就是字符串。String是特殊的引用类型。
如果想要获取String的地址可以通过sb.getBytes()得到。