toString和String.valueOf的比较
这两个方法的源码
Object中toString方法:
String中valueOf方法:
当传入参数为byte,short,int,long,float,double,boolean,char(8种基本数据类型)时可以调用String.valueOf()方法转化为String。
传入参数为byte,short时会自动转成int。
针对传入参数为Object类型,比较如下:
1.相同点
- Object中有public方法toString,因此任何一个对象都能调用toSring
- valueOf的参数是Object,可以传入任何一个对象
- 两者返回类型都是String,均能够将一个对象转化为String
2.区别
- 当对象为null时,调用toString会报java.lang.NullPointerException
- 当对象为null时,调用String.valueOf()会返回"null"字符串
3.System.out.println()
System.out.println方法源码:System.out.println内部调用了String.valueOf,String.valueOf内部调用了toString