A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴通 中级黑马   /  2012-9-4 11:32  /  2242 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴通 于 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是一个类怎么能直接定义变量呢?

评分

参与人数 1黑马币 +30 收起 理由
王德升 + 30 赞一个!

查看全部评分

3 个回复

倒序浏览
这两种方法转成的字符串:
第一种为  34+""
static  String  valueOf(34)  
这种方式转换为将基本类型数据34通过和空字符串相加的方式转成字符串类型

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

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

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

String是一个类没错,但是用它定义的变量是引用数据类型的变量
该变量指向一个字符串类型的数据 因此,可以理解为:
String是可以定义引用类数据类型变量 它定义的变量指向一个字符串类型数据
回复 使用道具 举报
第一种:String.valueof(基本类型)
第二种:空字符串加上基本类型,得到基本类型字符串(这里是空字符串不是空格字符串)
第三种:调用对象的toString()
回复 使用道具 举报
本帖最后由 杨鹏鹏 于 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 引用。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马