黑马程序员_基本数据类型对象包装类新特性

基本数据类型对象包装类新特性  JDK 1.5之后出现的新特性
    1、自动装箱
        Integer y = new Integer(123);
        可以写成
        Integer y = 123;
    2、自动拆箱
        Integer x = new Integer(123);
        x = x + 2;
        自动拆箱,将x变为int类型,和2进行加法运算,再将和进行装箱赋给x

   3、示例:

public class Demo{  
    public static void main(String[] args){  
        Integer x = new Integer("123");  
        Integer y = new Integer(123);  
        sop(x==y);//false  
        sop(x.equals(y));//true  
          
        //因为当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会在开辟新空间  
        Integer  m = 128;  
        Integer  n = 128;  
        sop("m==n:"+(m==n));//false  
        Integer  a = 128;  
        Integer  b = 128;  
        sop("a==b:"+(a==b));//true;因为a和b指向了同一个Integer对象
    }  
  
    public static void sop(Object obj){  
        System.out.println(obj);  
    }  
}  
4、包装内练习:

package Demo;
/**
 * 对一个字符串中的数值进行从小到大的排序。 
 *  
 * "20 78 9 -7 88 36 29" 
 *  
 * 思路: 
 * 1,排序联想int类型数组排序。 
 * 2,如何获取到这个字符串中的这些需要排序的数值? 
 *    发现这个字符串中其实都是空格来对数值进行分隔的。 
 *    所以就想到用字符串对象的切割方法将大串变成多个小串。 
 * 3,数值最终变成小字符串,怎么变成一个int数呢? 
 *    字符串-->基本类型 可以使用包装类。
 */
import java.util.Arrays;

public class Demo { 
	 
	 private static final String SPACE_SEPARATOR = " "; 
	 /** 
	  * @param args 
	  */ 
	 public static void main(String[] args) { 
	   
	  String numStr = "20 78 9 -7 88 36 29"; 
	   
	  System.out.println(numStr); 
	  numStr = sortStringNumber(numStr); 
	  System.out.println(numStr); 
	   
	 } 
	 /** 
	  *  
	  * @param numStr 
	  * @return 
	  */ 
	 public static String sortStringNumber(String numStr) { 
	   
	  //1,将字符串变成字符串数组。 
	  String[] str_arr = stringToArray(numStr); 
	   
	  //2,将字符串数组变成int数组。 
	   
	  int[] num_arr = toIntArray(str_arr); 
	   
	  //3,对int数组排序。 
	  mySortArray(num_arr); 
	   
	  //4,将排序后的int数组变成字符串。 
	   
	  String temp = arrayToString(num_arr); 
	   
	  return temp; 
	 } 
	 
	 public static String arrayToString(int[] num_arr) { 
	   
	  StringBuilder sb = new StringBuilder(); 

	  for(int x = 0; x<num_arr.length; x++){ 
	   if(x!=num_arr.length-1) 
	    sb.append(num_arr[x]+SPACE_SEPARATOR); 
	   else 
	    sb.append(num_arr[x]); 
	  } 
	   
	  return sb.toString(); 
	 } 
	 
	 public static void mySortArray(int[] num_arr) { 
	   
	  Arrays.sort(num_arr); 
	 } 
	 
	 public static int[] toIntArray(String[] str_arr) { 
	   
	  int[] arr = new int[str_arr.length]; 
	   
	  for (int i = 0; i < arr.length; i++) { 
	   arr[i] = Integer.parseInt(str_arr[i]); 
	  } 
	   
	  return arr; 
	 } 
	 
	 /** 
	  * @param numStr 
	  */ 
	 public static String[] stringToArray(String numStr) { 
	  String[] str_arr = numStr.split(SPACE_SEPARATOR); 
	   
	   
	  return str_arr; 
	 } 
	 
} 



       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值