java中的自动装箱拆箱

/**
		 * 自动装箱,将基本类型转化为对象
		 */
		Integer autoboxingInt = 10;
		//以上的声明就是用到了自动的装箱:解析为:Integer autoboxingInt = new Integer(10);
		//9是属于基本数据类型的,原则上它是不能直接赋值给一个对象Integer的,但jdk1.5后你就可以进行这样的声明。自动将基本数据类型转化为对应的封装类型,成为一个对象以后就可以调用对象所声明的所有的方法。
		
		/**
		 * 自动拆箱,将对象转化为基本数据类型。因为对象是无法计算的,这里隐性的自动拆箱了。
		 */
		int unboxingInt = autoboxingInt;
		System.out.println(autoboxingInt - 1);
		
		/**
		 * Integer深入理解,给Integer直接赋值时,当范围在-127到128时,会调用缓存中的值。
		 */
		Integer integer1 = 10;
		Integer integer2 = 10;
		System.err.println("integer在-128到127之间的对象是相等的,因为java在底层进行了缓存,用来提高效率。"+(integer1 == integer2));
		Integer integer3 = 128;
		Integer integer4 = 128;
		System.err.println("integer在-128到127之间的对象是相等的,超过了就不是同一个对象了。128就超过了范围。"+(integer3 == integer4));

你可能感兴趣的:(java基础)