您的位置:首页 > 编程语言 > Java开发

java自动装箱和拆箱

2013-07-19 10:59 169 查看
package com.example.main;

/*
*
*  基本类型:int,double,float,long,boolean,char,btye,shor
*  基本类型包装类:Integer,Double,Float,Long,Boolean,Char,Byte,Short
*  两者有什么差别,包装类是类,是对象,而基本类型是有值的“变量”,再细化一点,就是包装类的实例(对象)创建在堆上,
*  而基本类型创建在栈上,这是JAVA为了程序的速度考虑做出的优化,
*  那么既然是创建在栈上,所以基本类型都有大小的规定(每种基本类型所占的字节是一定的)
*
*/

public class Main {

public static void main(String[] args) {

System.out.println("java 自动装箱和拆箱");
/*
* 实际上,程序运行时,系统为我们执行了下面一条语句: Integer number = new Integer(50);
*/
Integer i = 50;

System.out.println("java 实现自动装箱" + i);
/*
* 实际上,程序运行时,系统为我们执行了下面一条语句: int p = i.intValue();
*/
int p = i;

System.out.println("java 实现自动拆箱" + p);

// 当Int值在-128~127之间时,java使用同一个对象处理,也就是说他会使用同一个对象对其进行处理
Integer m = 100;
Integer n = 100;
/*
* " == " 比较的是哈希码的值,也就是比较 hashCode()
* 方法的返回值,这个值是唯一的,在底层它是用来确定对象在堆内存上的存储位置。
* " == " 也可以用来做基本数据类型的比较。
* equals 方法大家都知道,它是用来比较两个对象的内容是否一样。
*/
System.out.println("m == n " + (m == n));
System.out.println("m equals (n) " + m.equals(n));

// 当int值超过128时,java就会使用不同的对象处理

Integer r = 128;
Integer s = 128;

System.out.println("r == s " + (r == s));
System.out.println("r equals (s) " + r.equals(s));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: