Object类中的toString方法和Objects类中的toString方法的区别
2020-07-20 04:19
1056 查看
大家都知道
Object类中的toString方法 在对象没有重写toString方法的时候, 输出的是对象的虚拟地址值的String表示形式 即:全类名路径+@+哈希值
而Objects工具类中的toString方法 在对象没有重写toString方法的时候,输出的同样是对象的虚拟地址值的String表示形式
控制台打印输出结果:
那既然两个方法都是结果都是一样的 而可想而知 如果对象重写了toString方法,打印输出的就是对象重写的toString方法的内容,那为什么在Object方法中有toString方法的同时Objects类中的toString方法有何意义呢?
查看底层源码可以知道:
Objects中的toString方法是比Object类中的toString方法高级一些的,那高级在哪里呢~
Object类中的toString方法的底层源码:
Objects工具类中的toString方法的底层源码:
可以发现 底层是调用的String类中的valueOf方法,那valueOf方法有什么特殊的吗?咱们继续往下走!
String类中的valueOf方法的底层源码:
这里就好玩了,哈哈哈,可以看到 valueOf底层源码实际就是一个三元运算符,而这个三元运算符的作用就是俗称的非空判断的作用 也就是说 如果对象是null Object类中的toString方法会抛出异常,而Objects类中的toString方法就不会抛出异常,而是会将null赋值给返回值字符串!
这就是Object类中的toString方法和Objects类中的toString方法的区别!!!
相关文章推荐
- Object类与Objects类的equals()方法区别。
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解
- object类的toString()与equals()方法
- 【Java入门第一季】Object类的两个方法toString()和equals()
- Java中区别.toString() ,(String),valueOf()方法
- Object类与 toString , equals方法
- JAVA中Object类 equals()方法和“==”怎样区别
- Object类中equals方法和toString方法练习☞标准写法,重载和重写的区别!!
- [android]tostring和tolocalestring方法的区别
- toLocaleString() toString() valueOf()三种方法在数组上的区别运用
- 线程中sleep()方法和Object类中的wait()方法的区别
- Java基础——权限修饰符、重写、super、final关键字、Object类、toString方法、equals、多态、转型cast、抽象abstract
- Object类九大方法之toString方法
- java Object类中的toString方法
- Object类----toString方法
- Object类和String类 equals() 方法的区别
- Object类中的equals();hashcode();toString()方法
- Object类中toString方法
- Java 异常Exception e中e的getMessage()和toString()方法的区别
- 【java知识点异常】Java 异常Exception e中e的getMessage()和toString()方法的区别