小白必看toString(),String.valueOf,(String)强转
目录
- 一、前言
- 二、代码实例
- 1、基本类型
- 2、封装类型
- 3、null值问题
- 三、源码分析
- 1、toString()
- 四、总结
- 1、toString(),可能会抛空指针异常
- 2、String.valueOf(),推荐使用,返回字符串“null”
- 3、(String)强转,不推荐使用
一、前言
相信大家在日常开发中这三种方法用到的应该很多,尤其是前两种,经常在开发的时候,随心所欲,想用哪个用哪个,既然存在,那就应该有它存在的道理,那么什么情况下用哪个呢?
二、代码实例
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异常。需要注意的是编写的时候,编译器并不会提示有语法错误,所以这个方法要谨慎的使用。
到此这篇关于小白必看toString(),String.valueOf,(String)强转的文章就介绍到这了,更多相关toString(),String.valueOf,(String)强转内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
浅谈javaSE 面向对象(Object类toString)
每一个对象,都有一个在内存中的地址哈希值,这个哈希值是十六进制的 调用Object对象的hashCode()方法,返回这个对象的哈希值 调用Integer.toHexString()方法,转换十六进制 调用Object对象的toString()方法,得到:类名@哈希值 通常我们会复写toString()方法,因为默认的没有太大意义 实现原理是类的反射 当我们创建一个对象,会在硬盘上生成xxx.class的文件,jdk定义了Class类来描述这些class文件 调用Object对象的getClas
-
Java中Integer.valueOf,parsetInt() String.valueOf的区别和结果代码解析
先来看段代码 public class IntegerDemo { public static void main(String[] args) { String num = null; System.out.println( Integer.parseInt(num));// Exception java.lang.NumberFormatException System.out.println( Integer.valueOf(num));// Exception java.lang.Num
-
java基础之 Arrays.toString()方法详解
在实际项目中,如果想要把数组中的内容打印出来,直接使用toString方法只会打印出数组的地址,因此需要使用Arrays的toString方法, 可以从其内部实现中看出来,该方法支持入参可以是long,float,double,int,boolean,byte,object 型的数组. 补充:java中arrays.toString(int [ ] arr)方法的底层原理 我就废话不多说了,大家还是直接看代码吧~ /** *@author:肖佳嘉 * */ * public static Str
-
java中的 toString()方法实例代码
前言: toString()方法 相信大家都用到过,一般用于以字符串的形式返回对象的相关数据. 最近项目中需要对一个ArrayList<ArrayList<Integer>> datas 形式的集合处理. 处理要求把集合数据转换成字符串形式,格式为 :子集合1数据+"#"+子集合2数据+"#"+....+子集合n数据. 举例: 集合数据 :[[1,2,3],[2,3,5]] 要求转成为 "[1,2,3]#[2,3,5]"
-
JAVA String.valueOf()方法的用法说明
一.由基本数据型态转换成String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也就是 String.valueOf() 这个参数多载的方法 有以下几种 (1)String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 (2)String.valueOf(char c) : 将 char 变量 c 转换成字符串 (3)String.valueOf(char[] data) : 将 char 数组 data
-
浅析JAVA中toString方法的作用
因为它是Object里面已经有了的方法,而所有类都是继承Object,所以"所有对象都有这个方法". 它通常只是为了方便输出,比如System.out.println(xx),括号里面的"xx"如果不是String类型的话,就自动调用xx的toString()方法 总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法 回答补充:写这个方法的用途就是为了方便操作,所以在文件操作里面可用可不用例子1: 复制代码 代码如下: publ
-
java tostring方法重写代码示例
当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法 默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名和此对象对应内存的首地址 如果想自定义输出信息必须重写toString()方法 注意事项 1.必须被声明为public 2.返回类型为String 3.方法的名称必须为toString,且无参数
-
java中的tostring方法的具体用法
我们知道调用对象的toString()方法会直接输出对象的属性信息,但是具体怎么实现的?以及如何更好地实现它呢?现在来学习下. 通过java文档我们能知道,toString()方法在Object类里定义的,其返回值类型为String类型,返回类名和它的引用地址. 在进行String类与其他类型的连接操作时,自动调用toString()方法,demo如下: Date now = new Date(); System.out.println("now = " + now);//相当于下一行
-
小白必看toString(),String.valueOf,(String)强转
目录 一.前言 二.代码实例 1.基本类型 2.封装类型 3.null值问题 三.源码分析 1.toString() 四.总结 1.toString(),可能会抛空指针异常 2.String.valueOf(),推荐使用,返回字符串"null" 3.(String)强转,不推荐使用 一.前言 相信大家在日常开发中这三种方法用到的应该很多,尤其是前两种,经常在开发的时候,随心所欲,想用哪个用哪个,既然存在,那就应该有它存在的道理,那么什么情况下用哪个呢? 二.代码实例 1.基本类型 (1
-
tensorflow基于CNN实战mnist手写识别(小白必看)
很荣幸您能看到这篇文章,相信通过标题打开这篇文章的都是对tensorflow感兴趣的,特别是对卷积神经网络在mnist手写识别这个实例感兴趣.不管你是什么基础,我相信,你在看完这篇文章后,都能够完全理解这个实例.这对于神经网络入门的小白来说,简直是再好不过了. 通过这篇文章,你能够学习到 tensorflow一些方法的用法 mnist数据集的使用方法以及下载 CNN卷积神经网络具体python代码实现 CNN卷积神经网络原理 模型训练.模型的保存和载入 Tensorflow实战mnist手写数字
-
springboot yml中profiles的巧妙用法(小白必看多环境配置)
遥想当年我还是个小白的时候,就只是写写demo,也就在一套环境上跑跑,真正当实战的时候,除了你本地环境,还有开发环境,测试环境,生产环境(上线)等等. 如果你不知道用这个profiles,那么这么多套环境,用一种老古董的写法就是这样,用哪个环境就把其他环境注释掉! spring: datasource: username: root #dev password: 123456 #dev #username: root2 #test #password: 456789 #test ... 这还只2
-
深入理解docker镜像的分层(小白必看)
大家好,今天分享docker镜像的分层理解 我们拉取Redis 镜像 [root@localhost ~]# docker pull redis Using default tag: latest latest: Pulling from library/redis a2abf6c4d29d: Pull complete c7a4e4382001: Pull complete 4044b9ba67c9: Pull complete c8388a79482f: Pull complete 413c
-
Vue的子父组件传值之小白必看篇
目录 搭建的框架目录结构 一.父传子动图效果及源码 父传子源码 二.子传父动图效果 子传父源码 三.详细解说组件传递过程:组件传值模板 1.父--->子 ①属性props ②引用refs传值 2.子--->父 ①属性emit 搭建的框架目录结构 一.父传子动图效果及源码 父传子源码 父组件: <template> <div> <div> <p v-html="theCardTitle"></p&g
-
Java中toString()、String.valueOf、(String)强转区别
目录 一.前言 二.代码实例 1.基本类型 2.封装类型 3.null值问题 三.源码分析 1.toString() 2.String.valueOf() 四.总结 一.前言 相信大家在日常开发中这三种方法用到的应该很多,尤其是前两种,经常在开发的时候,随心所欲,想用哪个用哪个,既然存在,那就应该有它存在的道理,那么什么情况下用哪个呢? 二.代码实例 1.基本类型 (1)基本类型没有toString()方法 (2)推荐使用 (3)无法强转 (String)是标准的类型转换,将Object类型转为
-
浅谈String.valueOf()方法的使用
前面的话 关于类型转换,对象常见的两个方法是toString()和valueOf().实际上,这两个方法也可以应用在包装类型上.前面已经介绍过toString()方法,本文将介绍valueOf()方法,该方法返回原值 [1]undefined和null没有valueOf()方法 undefined.valueOf();//错误 null.valueOf();//错误 [2]布尔型数据true和false返回原值 true.valueOf();//true typeof true.valueOf(
-
Java中区别.toString() ,(String),valueOf()方法
在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString(),(String)要转换的对象,String.valueOf(Object)等.下面对这些方法一一进行分析. 方法1:采用 Object.toString()方法请看下面的例子: Object object = getObject(); System.out.println(object.toString()); 在这种使用方法中,因
-
javascript入门之string对象【新手必看】
一.String 对象 String 对象用于处理文本(字符串). 二.构造函数 new String(value) //构造函数 function String(value) //转换函数 三.属性 length 该字符串中的字符数 var str = new String("abcdefg"); document.write(str.length); //输出 7 四.方法 1.chatAt() 取出一个字符串中指定位置的字符. var str = new String("
-
老生常谈Java String字符串(必看篇)
Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "hello";,另一种就是使用new这种标准的构造对象的方法,如String str = new String("hello"); 对于这样的常识,不再赘述. 首先String类是final类,为什么定义成final形式呢? 简单点说,对于如此高频率被使用的数据类型,设计者们认为已经设计的足够优秀了,不需要被继承,否则胡乱继承重写可能会降低程序的性能. 正如标题所述,既然深入,那我们
随机推荐
- 详解angularjs的数组传参方式的简单实现
- Android多点触控实现对图片放大缩小平移,惯性滑动等功能
- JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
- JavaScript面试题大全(推荐)
- C#实现json的序列化和反序列化实例代码
- python如何获取服务器硬件信息
- Python利用operator模块实现对象的多级排序详解
- MySQL的内存表的基础学习教程
- Android Animation实战之屏幕底部弹出PopupWindow
- 在JavaScript里嵌入大量字符串常量的实现方法
- IOS 开发之ios视频截屏的实现代码
- php发送邮件的问题详解
- ajax获取php页面的返回参数,控件赋值的方法
- 常用CSS集合
- JavaScript 对象成员的可见性说明
- javascript对数组的常用操作代码 数组方法总汇
- Apache Request-URI Too Large错误解决方法
- 四种Java线程池用法解析
- Android 获取手机联系人实例代码详解
- android-使用环信SDK开发即时通信功能(附源码下载)