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



  1. static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行分析。static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例。 static Integer valueOf(String s) 返回保持指定的 String 的值的 Integer 对象。 
  2. 从返回值可以看出他们的区别   parseInt()返回的是基本类型int 而valueOf()返回的是包装类Integer  Integer是可以使用对象方法的  而int类型就不能和Object类型进行互相转换 。
  3. Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。


其他回答:


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))会翻译错误.


(为了在各种类型间转化,通过各种方法的调用。否则,你无法直接通过变量转化)。
  比如,现在int要转为String

int a=0; 
 
     String result=Integer.toString(a);


  在java中包装类,比较多的用途是用在于各种数据类型的转化中。
  以下是demo(来自落叶补充)

//通过包装类来实现转化的 
 

int num=Integer.valueOf("12"); 
 
 int num2=Integer.parseInt("12"); 
 

 double num3=Double.valueOf("12.2"); 
 
 double num4=Double.parseDouble("12.2"); 
 
 //其他的类似。通过基本数据类型的包装来的valueOf和parseXX来实现String转为XX 
 

 String a=String.valueOf("1234");//这里括号中几乎可以是任何类型 
 
 String b=String.valueOf(true); 
 
 String c=new Integer(12).toString();//通过包装类的toString()也可以 
 
 String d=new Double(2.3).toString();