toString和String.valueOf的比较

这两个方法的源码

Object中toString方法:
在这里插入图片描述
String中valueOf方法:
在这里插入图片描述
当传入参数为byte,short,int,long,float,double,boolean,char(8种基本数据类型)时可以调用String.valueOf()方法转化为String。
传入参数为byte,short时会自动转成int。
toString和String.valueOf的比较_第1张图片
针对传入参数为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方法源码:
toString和String.valueOf的比较_第2张图片System.out.println内部调用了String.valueOf,String.valueOf内部调用了toString

你可能感兴趣的:(Java基础)