关于JAVA类型转换的疑问

关于JAVA类型转换的疑问

问题描述:

转换成整形:
Integer.valueOf()
parseInt
二者有什么区别?什么时候采用哪一个

转换成字符串:
String.valueOf()
toString()
(String)
三者的区别以及选用时机?

http://blog.csdn.net/xiancaifu/article/details/7388579

toString(),任何类型都支持,String.valueOf,固定的几个类型支持,强转,只有实际为String类型才能转。

Integer.valueOf()//61654dfgdf,可以转化为61654可以转化包含非数字的字符串
parseInt//只能转纯数字的字符串
String.valueOf()//对象,
toString()//数组,集合
(String)//基础类型

toString() 使用时注意空指针异常
String.valueOf() 内部实现了toString() obj==null?"null":obj.toString()
String 字符串类 一般对象在强制转化会用上

总结下:
提这个问题实际是对valueOf() parseInt() toString() 以及强转的作用不清晰。

  1. 字符串和数值类型的之间的转换正规来说是用valueOf()和parseInt()这两种方法。 两者的区别就是前者是返回一个类,后者是返回一个基本数据类型。 parseInt()是字符串转为数值,valueOf()数值、字符串来回转都可以。
  2. 而toString()是Object类的一个通用方法,所有类型都可以用,某些基本类型的数据可以通过这个方法转为字符串,但一些类的toString()是转为这个类的哈希码。
  3. 强转不能直接使变量从一个类型转为另一个类型, 必须两者有一定联系才可。比如父类转换为子类。