刚刚在另一个问题中提到这一点 jdk1.5的新特性 自动装箱和拆箱
也就是 包装类和它包装的简单类型 可以自由转换
以前我们实现这个例子时必须做的是
int a1 = a.intValue();
int b1 = b.intValue();
System.out.println(a1 + b1);
而有了新特性 就不那么多转化了 jvm就帮我们做这些事
基本数据类型:byte,int, short, long, boolean,char, float,double等
包装类型 : Byte,Integer,Short,Long,Boolean,Character,Float,Double等
JDK1.5的新特性:自动装包/拆包(Autoboxing/unboxing)
自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制
解决了我们的问题。
int a = 3;
Collection c = new ArrayList();
c.add(a);//自动转换成Integer.
Integer b = new Integer(2);
c.add(b + 2);
这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.
Integer x=new Integer(2323);
这个构造方法没错,但
System.out.pringln(a+b);这里a和b不能直接相加,Integer是对int类型的包装,用于将其他的类型值转变为int型的,如int x=Integer.parseInt("12345");括号里面的值“12345”为字符串。还有其他基本数据类型的包装,如:Double,Float,String,等。
这个有点类似于运算符重载了,不过java中并不支持运算符重载,等待他人回答,学习