基本类型对象包装类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本类型对象包装类相关的知识,希望对你有一定的参考价值。

基本数据类型对象包装类

将基本数据类型封装成对象的好处在于可以在包装类中定义更多的功能方法操作该数据

常用的操作之一:用于基本数据类型与字符串之间的转换。


基本数据类型对象包装类新特性

JDK1.5以后,简化了定义方式。

Integer x = new Integer(4);可以直接写成

Integer x = 4;//自动装箱。

x  = x + 5;//自动拆箱。通过intValue方法。

需要注意:

    在使用时,Integer  x = null;上面的代码就会出现NullPointerException

	@Test
	public void test01(){
		/*
		 * 基本数据类型对象包装类。
		 * 
		 * byte		Byte
		 * short	Short
		 * int		Integer
		 * long		Long
		 * float    Float
		 * double	Double
		 * boolean	Boolean
		 * char		Character 
		 * 
		 * 该对象常见场景:
		 * 在基本数据值和字符串之间做转换。
		 * 
		 * 基本类型值--->字符串。  34+"" = "34"; String.valueOf(基本数据类型值);
		 * 					static 字符串 toString(基本类型值);
		 * 
		 * 字符串--->基本类型值。static  基本类型  parseXXX(字符串)"123" 123
		 * 						static XXX parseXXX(字符串);
		 * 
		 */
		
		System.out.println(Integer.parseInt("123")+1);//结果为124

//		System.out.println(Integer.parseInt("abc")+1); //NumberFormatException
		
		System.out.println(Integer.MAX_VALUE);
		
		Integer x = new Integer(123);
		Integer y = new Integer("123");		
		System.out.println(x==y);//false 比较的是两个对象的地址值
		System.out.println(x.equals(y));//true 比较两个对象的数值
// Integer覆盖了Object的equals方法。建立自己的判断相同的依据,只要对象中的数值相同即可。
		
		
		//进制转换。
		
		//十进制-->其他进制。
		System.out.println(Integer.toBinaryString(-6)); //2进制
		System.out.println(Integer.toHexString(26)); //16进制
		
		//其他进制-->十进制。
		System.out.println(Integer.parseInt("110",2));
		
		
		//基本数据值--->对象。
		Integer i = new Integer(23);
		Integer ii = Integer.valueOf(23);
		
		//对象---->基本数据类型值。
		int num = i.intValue();
		
	}
	@Test
	public void test02(){
		/**
		 * JDK1.5以后,基本数据类型对象包装类有了一个新特性。
		 * 自动装箱拆箱。
		 */
		
//		Integer i = new Integer(34);
		//jdk1.5后。简化成:
		Integer i = 34;//Integer i = Integer.valueOf(34);自动装箱。
		i = i + 2;//i+2,i先转成一个整数,i.intValue()自动拆箱。
				//i = Integer.valueOf(i.intValue()+2);
		
		System.out.println(5);//自动装箱了
		
		Integer x = new Integer(123);
		Integer y = new Integer(123);
		System.out.println(x==y);//false
		System.out.println(x.equals(y));//true
		
		Integer a = 127;//如果Internet的同一个数值,在byte的范围内,内存优化,不必要重新开辟空间,拿来该数值的地址直接用。
		Integer b = 127;
		System.out.println(a==b);//true 
		System.out.println(a.equals(b));//true
		
		Integer c = 128;
		Integer d = 128;
		System.out.println(c==d);  //false
		System.out.println(c.equals(d)); //true
	}	


以上是关于基本类型对象包装类的主要内容,如果未能解决你的问题,请参考以下文章

基本数据类型对象包装类

从零开始的Java开发1-5-2 包装类与基本数据类型常用API基本数据类型与包装类字符串之间的转换包装类的初始值与比较对象常量池

iOS 基础数据类型及其包装类型 & 对象类型

[javaSE] 基本数据类型对象包装类

常用对象API( 基本数据类型对象包装类 )

基本数据类型对象的包装类