打包(Wrap)基本数据类型
基本数据类型:long、int、double、float、boolean、byte等。在JAVA中这些并不是对象,它们只是纯粹的数据,除了数值本身的信息之处,基本数据类型不带有其他的信息或可操作的方法。在J2SE5.0之前,如果想要让基本数据类型能像对象一样操作,那么要使用Long、Integer、Double、Float、Boolean、Byte等类来打包基本数据类型。如:
public class WrapperDemo{ public static void main(String[] args){ int data1 = 10; int data2 = 20; //使用Integer来打包int数据 Integer data1Wrapper=new Integer(data1); Integer data2Wrapper=new Integer(data2);
//直接除以3 System.out.println(data1 / 3);
//转为double值再除以3 System.out.println(data1Wrapper.doubleValue() / 3);
//进行两个值的比较 System.out.println(data1Wrapper.compareTo(data2Wrapper)); } }
执行结果:
3
3.3333333333333335
-1
|
自动装箱和拆箱:
在J2SE5.0之后提供了自动装箱和拆箱功能,你可以直接使用以下语句来打包基本数据类型:Integer integer=10;在进行编译时,编译器再自动根据您写下的语句,判断是否进行自动装箱动作。直接改写上面的代码:
public class AutoBoxDemo{ public static void main(String[] args){ Integer data1 = 10; Integer data2 = 20;
//转为double值再除以3 System.out.println(data1.doubleValue() / 3);
//进行两个值的比较 System.out.println(data1.compareTo(data2)); } }
执行结果:
3.3333333333333335
-1
|
自动装箱运用还可以如下:
int i = 10;
Integer integer = i;也可以使用更一般化的java.lang.Number类来自动装箱。如:Number number=3.14f; 3.14f会先被自动装箱为Float,然后指定给number。还可以:Integer fooInteger = 10; int fooprimitive=fooInteger; fooInteger引用至自动装箱为Integer的实例后,如果被指定一个int类型的变量fooPrimitive,则会自动变为int类型再指定给fooprimitive。
(注)不要过分依赖自动装箱和拆箱,你还是必须知道基本数据类型与对象的差异,否则容易出错。
阅读(806) | 评论(0) | 转发(0) |