因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。
它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法
它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法
首先我们得了解,java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。那么你想把一个创建好的对象拿来输出怎么办?例如:
package com.spring.h3;
public class Test2 {
public static void main(String[] args) {
System.out.println("new Test2()==="+new Test2());
//输出结果为:new Test2()===com.spring.h3.Test2@18a992f
}
}
按照print接受的类型来说,s1是不能直接输出的,那么是否代表这个是不能编译运行的呢?当然不是。因为当print检测到输出的是一个对象而不是字符或者数字时,那么它会去调用这个对象类里面的toString 方法,输出结果为[类型@哈希值]。
调用Arrays.toString将数组的值转换为字符串并显示出来。