java parseInt 和 valueof 的区别

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类型进行互相转换

示例1:

package helloworld;

public class Myexception {
   public static void main(String[] args){
	   int  i1 = Integer.parseInt("256"); 
	   int  i2 = Integer.parseInt("256");
	   int  i3 = Integer.valueOf(256);
	   int  i4 = Integer.valueOf(256);
	   System.out.println(i1==i2);
	   System.out.println(i3==i4);
   }
}

结果:true true

示例2

package helloworld;

public class Myexception {
   public static void main(String[] args){
	   Integer  i1 = Integer.parseInt("256"); 
	   Integer  i2 = Integer.parseInt("256");
	   Integer  i3 = Integer.valueOf(256);
	   Integer  i4 = Integer.valueOf(256);
	   System.out.println(i1==i2);
	   System.out.println(i3==i4);
   }
}


结果: false false

这是因为parseInt返回的是一个有符号的Integer数值,而Valueof返回是一个实例,更根本原因是对象池中数字是一个8bit有符号型,也就是说,数字大小在-128--127之内,valueof对于相同的数字返回的id是一致的,但是超过了这个范围,就会新开辟一块区域

示例3:

package helloworld;

public class Myexception {
   public static void main(String[] args){
	   Integer  i1 = Integer.parseInt("56"); 
	   Integer  i2 = Integer.parseInt("56");
	   Integer  i3 = Integer.valueOf(256);
	   Integer  i4 = Integer.valueOf(256);
	   System.out.println(i1==i2);
	   System.out.println(i3==i4);
   }
}

结果:true false


示例4:


package helloworld;

public class Myexception {
   public static void main(String[] args){
	   int   i1 = Integer.parseInt("56"); 
	   Integer  i2 = Integer.parseInt("56");
	   int   i3 = Integer.valueOf(256);
	   Integer  i4 = Integer.valueOf(256);
	   System.out.println(i1==i2);
	   System.out.println(i3==i4);
   }
}

结果:true true

package helloworld;

public class Myexception {
   public static void main(String[] args){
	// 第一个不常用
	   Integer a_=new Integer(123);    // a_是Integer类型
	    
	   int a=a_.intValue();                    // 转化为int类型
	   System.out.println(a);
	    
	   String b = "123";    // 一个string
	   int b_=Integer.parseInt(b);    // 把string转化成int
	   System.out.println(b_);
	    
	   int c_=123;
	   String c=String.valueOf(c_);
	   System.out.println(c);
   }
}

123

123

123

综合示例:对一个对象数组排序

package helloworld;

import javax.naming.ldap.SortControl;

//对一个对象数组排序
public class Myexception {
   public static void main(String[] args){
      // java会自动对基本类型以及相应的包装类型进行转换
      Integer[] intArray ={new Integer(2),new Integer(4),new Integer(1)};
      Double[] doubleArray ={new Double(3.4),new Double(1.3),new Double(-2.1)};
      Character[] charArray = {new Character('a'),new Character('j'),new Character('r')};
      String[] stringArray = {"tom","john","fred"};
 
      sort(intArray);   
      sort(doubleArray);
      sort(charArray);
      sort(stringArray);
      
      System.out.print("sort 1:");
      printlist(intArray);
      System.out.print("sort 2:");
      printlist(doubleArray);
      System.out.print("sort 3:");
      printlist(charArray);
      System.out.print("sort 4:");
      printlist(stringArray);
   }
   
   //sort an  array of comparable objects
   //因为上面都实现了comparable接口,因此可以直接使用compareto方法
   //选择排序
   public static void sort(Comparable[] list){
	   Comparable currentmin;
	   int currentminindex;
	   for(int i=0;i<list.length-1;i++)
	   {
		   currentmin=list[i];
		   currentminindex=i;
		   for(int j=i+1;j<list.length;j++)
		   {
			   if(currentmin.compareTo(list[j])>0)
			   {
				   currentmin=list[j];
				   currentminindex=j;
			   }
		   }
		   
		   if(currentminindex!=i)
			   list[currentminindex]=list[i];
		       list[i]=currentmin;
	   }
   }
   
   public static void printlist(Object[] list){
	   for(int i=0;i<list.length;i++)
		   System.out.print(list[i]+" ");
	   System.out.println();
   }  
}



疑问点:在sort排序中函数参数为(Comparable[] list),而在printlist函数参数为(Object[ ] list)


直接利用java本身提供的对任意对象的数组进行排序的静态方法

package helloworld;

import javax.naming.ldap.SortControl;


//对一个对象数组排序
public class Myexception {
   public static void main(String[] args){
      Integer[] intArray ={new Integer(2),new Integer(4),new Integer(1)};
      Double[] doubleArray ={new Double(3.4),new Double(1.3),new Double(-2.1)};
      Character[] charArray = {new Character('a'),new Character('j'),new Character('r')};
      String[] stringArray = {"tom","john","fred"};
 
      java.util.Arrays.sort(intArray);   
      java.util.Arrays.sort(doubleArray);
      java.util.Arrays.sort(charArray);
      java.util.Arrays.sort(stringArray);
      
      System.out.print("sort 1:");
      printlist(intArray);
      System.out.print("sort 2:");
      printlist(doubleArray);
      System.out.print("sort 3:");
      printlist(charArray);
      System.out.print("sort 4:");
      printlist(stringArray);
   }
   
   //sort an  array of comparable objects
   //因为上面都实现了comparable接口,因此可以直接使用compareto方法
   //选择排序
  /* public static void sort(Comparable[] list){
	   Comparable currentmin;
	   int currentminindex;
	   for(int i=0;i<list.length-1;i++)
	   {
		   currentmin=list[i];
		   currentminindex=i;
		   for(int j=i+1;j<list.length;j++)
		   {
			   if(currentmin.compareTo(list[j])>0)
			   {
				   currentmin=list[j];
				   currentminindex=j;
			   }
		   }
		   
		   if(currentminindex!=i)
			   list[currentminindex]=list[i];
		       list[i]=currentmin;
	   }
   }*/
   
   public static void printlist(Object[] list){
	   for(int i=0;i<list.length;i++)
		   System.out.print(list[i]+" ");
	   System.out.println();
   }  
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值