欢迎关注方志朋的博客,回复”666“获面试宝典

一、前言

相信大家在日常开发中这三种方法用到的应该很多,尤其是前两种,经常在开发的时候,随心所欲,想用哪个用哪个,既然存在,那就应该有它存在的道理,那么什么情况下用哪个呢?

二、代码实例

1、基本类型

(1)基本类型没有toString()方法

(2)推荐使用

(3)无法强转

(String)是标准的类型转换,将Object类型转为String类型,使用(String)强转时,最好使用instanceof做一个类型检查,以判断是否可以进行强转,否则容易抛出ClassCastException异常。需要注意的是编写的时候,编译器并不会提示有语法错误,所以这个方法要谨慎的使用。

instanceof判断

2、封装类型

(1)toString ok

(2)String.valueOf()

自然也是可以的。

(3)封装类型也无法强转

3、null值问题

(1)toString()报空指针异常

(2)String.valueOf()返回字符串“null”

(3)null值强转成功

三、源码分析

1、toString()

2、String.valueOf()

String.valueOf()比toString多了一个非空判断。

四、总结

1、toString(),可能会抛空指针异常

在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以java对象都可以调用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。

2、String.valueOf(),推荐使用,返回字符串“null”

String.valueOf()方法是小编推荐使用的,因为它不会出现空指针异常,而且是静态的方法,直接通过String调用即可,只是有一点需要注意,就是上面提到的,如果为null,String.valueOf()返回结果是字符串“null”。而不是null。

3、(String)强转,不推荐使用

(String)是标准的类型转换,将Object类型转为String类型,使用(String)强转时,最好使用instanceof做一个类型检查,以判断是否可以进行强转,否则容易抛出ClassCastException异常。需要注意的是编写的时候,编译器并不会提示有语法错误,所以这个方法要谨慎的使用。

感谢阅读,希望对你有所帮助 :) 

来源:blog.csdn.net/guorui_java/article/details/117935620

热门内容:
  • 我变秃了,也变强了 ...

  • 突发!LayUI宣布下线

  • 再见了Spring Cloud!这个架构有点厉害,甚至干掉了Dubbo

  • 我把SpringBoot的banner换成了美女,老板:工作不饱和,建议加班

  • 别再乱打日志了,这样才是定位 bug 打日志的方式!

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

头条三面:toString()、String.valueOf、(String)强转,有啥区别?相关推荐

  1. (String) 和 String.valueOf() 两种字符串转换的区别

    使用 String.valueOf() 进行数据转换,如果被转换的数据为 null, 则这种方法将返回一个 "null" 字符串 (String) 方法进行转换时,如果被转换的数据 ...

  2. 头条三面: String.valueOf、toString()、(String)强转,有啥区别?

    一. 前言 相信大家在日常开发中这三种方法用到的应该很多,尤其是前两种,经常在开发的时候,随心所欲,想用哪个用哪个,既然存在,那就应该有它存在的道理,那么什么情况下用哪个呢? 二. 代码实例 1. 基 ...

  3. toString()、String.valueOf()、(String) 强转的区别

    在实际开发中,少不了使用这三种方法对某一个类型的数据进行转 String 的操作,那么什么情况下使用哪种方法更快捷,以及这些方法使用时的一些注意事项都有哪些呢?这篇文章参考自<掘金>上大佬 ...

  4. toString()、String.valueOf、(String)强转,如何抉择,你真的了解吗

    作者:傻姑不傻 链接:https://www.jianshu.com/p/e5bfcc2455fd 一.前言 相信大家在日常开发中这三种方法用到的应该很多,尤其是前两种,经常在开发的时候,随心所欲,想 ...

  5. 通过char[]获得字符串new String(chars) || chars.toString() || String.valueOf(chars)对比

    今天刷Leecode49. 字母异位词分组,遇到一个通过char[]获得字符串的问题,记录一下new String(chars) || chars.toString() || String.value ...

  6. String、toString、String.valueOf()三个有啥区别?

    今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下 ...

  7. Java中String字符串toString()、String.valueOf()、String强转、+ 的区别

    Object#toString(): Object object = getObject(); System.out.println(object.toString()); 在这种使用方法中,因为ja ...

  8. 关于 java.toString() ,(String),String.valueOf的区别

    今天,在群里有一个妹子问我一个问题,我开始时草草帮她解答,后来她说她还是没懂,然后自己仔细看了看,才发现自己其实更本没说清楚其中的道理,在查看源代码和API然后在网上看看前辈们的文章才知道了,这个问题 ...

  9. tostring、(string)和 String.valueOf()

    上周遇到一个问题,只怪自己平时没注意这个细节,从数据库取数据在map集合里,取出该值是我用了.tostring的方法,一次在当取出数据为空时代码报java.lang.NullPointerExcept ...

最新文章

  1. leanote个人版安装
  2. 5G 行业专网 — 三大运营商的 5G 专网类型
  3. mysql char varchar text 对比
  4. mysql 如何将一个库的一个表的数据复制到另一个库中的一个表
  5. OpenCASCADE:Foundation Classes内存管理
  6. PHP非对称加密:RSA (RSA/ECB/PKCS1Padding)+base64_encode/bin2hex加密
  7. java判断是否安装了pdf_Java检查PDF文件是否损坏
  8. flutter 几秒前, 几分钟前, 几小时前, 几天前...
  9. java餐饮管理系统图片,基于jsp的酒店餐饮管理系统-JavaEE实现酒店餐饮管理系统 - java项目源码...
  10. 算法的力量万变不离其宗 -- 李开复
  11. gui编写线性调频信号_是的,我编写了信号量,不,我不是OS开发人员。
  12. java中awt和swing是的关系以及区别
  13. opencl初探-sobel检测
  14. Android NDK 建立cocos2dx项目
  15. matlab 输入Angstrom (埃,埃米,Angstrom 或ANG或Å)
  16. 若依 后台框架配置丛数据源使用
  17. java网络编程1-查询Internet地址
  18. 解决图片处理后旋转问题
  19. selectpicker 动态加载数据
  20. OSA账户新出政策,个人SOHO该如何开离岸账户?

热门文章

  1. 2018-3-26论文(GWO和WOA)中Table1--Table3中的benchmark函数F1-F23图形
  2. 硬盘无法访问文件系统损坏,里面的资料怎样恢复
  3. java8学习之Lambda表达式深入与流初步
  4. [LeetCode] [C++] 第一轮刷题总结(持续更新~~~)
  5. 001_python单元测试
  6. Android Studio导入Eclipse项目的两种方法
  7. 模板引擎:VelocityFreeMarker(转)
  8. iOS项目的本地化处理(多国语言)
  9. WebView通过loadDataWithBaseURL加载本地页面卡死
  10. 【2007-5】【素数算式】