代码改变世界

2017.4.14 java parseInt和valueof的区别

2017-04-14 13:46  mojiayi  阅读(220)  评论(0编辑  收藏  举报

他们返回类型的不同是最大的原因: 


static int parseInt(String s) 
          将字符串参数作为有符号的十进制整数进行分析。 

static Integer valueOf(int i) 
          返回一个表示指定的 int 值的 Integer 实例。 
static Integer valueOf(String s) 
          返回保持指定的 String 的值的 Integer 对象。 

从返回值可以看出他们的区别   parseInt()返回的是基本类型int 
而valueOf()返回的是包装类Integer  Integer是可以使用对象方法的  而int类型就不能和Object类型进行互相转换 

Integer.parseInt(chuan)返回值是int型的. 
Integer.valueOf(chuan)返回值是Integer型的.把Integer赋值给int型的话,JRE会自己完成这些工作. 

区别还是有的.如果你写一个方法的形参是int型的,比如: 
void test(int a){ 
//todo: 
}; 

当你调用这个方法的时候test(Integer.parseInt(chuan))会翻译通过,但test(Integer.valueOf(chuan))会翻译错误

 

 

 

java String.valueOf()的作用

在读取数据时需要对数据的强制转换,可采用String.valueOf(a),把a强制转换成字符串类型

有时候a本来就已经是字符串类型了,但是为了代码的严谨性,也会加入String.valueOf(a),这时String.valueOf(a)省略也不会出错的。

但有时会涉及到服务器的问题,所以还是加入String.valueOf(a)比较好。

 

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

String) 方法进行转换时,如果被转换的数据为 null, 则返回 null 对象而不是一个 "null" 字符串。