黑马程序员技术交流社区

标题: 基本数据类型转换成字符串 [打印本页]

作者: 吴通    时间: 2012-9-4 11:32
标题: 基本数据类型转换成字符串
本帖最后由 吴通 于 2012-9-6 09:19 编辑

String类里面有一个把基本数据类型转成字符串方法是:
static  String  valueOf()   可以讲将int、double等类型转成字符串。
以int类型为例:34
static  String  valueOf(34)   
而基本数据类型包装类:Integer中也有一个把int类型数据转成字符串的
方法:Integer.toString(34)

这两种方法转成的字符串:
第一种为  34+""
第二种为  "34"

为什么它们转换的结果不一样?有什么区别?
还有就是当我们定义变量的时候,都是定义基本数据类型,像int、char
而String是一个类怎么能直接定义变量呢?


作者: 焦晨光    时间: 2012-9-4 11:52
这两种方法转成的字符串:
第一种为  34+""
static  String  valueOf(34)  
这种方式转换为将基本类型数据34通过和空字符串相加的方式转成字符串类型

第二种为  "34"
Integer.toString(34)
是将Integer类型的数据34(是一个对象),直接转换成字符串类型

第一种是将基本类型数据转换成字符串类型
第二种是将引用类型数据34(对象)转换成字符串类型

还有就是当我们定义变量的时候,都是定义基本数据类型,像int、char
而String是一个类怎么能直接定义变量呢?

String是一个类没错,但是用它定义的变量是引用数据类型的变量
该变量指向一个字符串类型的数据 因此,可以理解为:
String是可以定义引用类数据类型变量 它定义的变量指向一个字符串类型数据
作者: 武庆东    时间: 2012-9-4 21:59
第一种:String.valueof(基本类型)
第二种:空字符串加上基本类型,得到基本类型字符串(这里是空字符串不是空格字符串)
第三种:调用对象的toString()
作者: 杨鹏鹏    时间: 2012-9-4 22:16
本帖最后由 杨鹏鹏 于 2012-9-4 22:17 编辑

为什么它们转换的结果不一样?有什么区别?
1这是利用String类提供的工厂方法来做的转换
2这是利用java的toString机制来做的转换,任何类型在和String相加的时候,都会先转换成String。
第一种:比较方便。
第二种:比较高效。
还有就是当我们定义变量的时候,都是定义基本数据类型,像int、char
而String是一个类怎么能直接定义变量呢?
这个涉及到线程池String s = “ aaa ” ; (采用字面值方式赋值) 1) 查找 String Pool 中是否存在“ aaa
Pool 中的这个“ aaa ”对象的地址返回来,赋给引 用变量 s ,这样 s 会指向 String
Pool 中的这个“ aaa ”字符串对象 2) 如果存在,则不创建任何对象,直接将 String Pool
中的这个“ aaa ”对象地址返回来, 赋给 s 引用。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2