Chinaunix首页 | 论坛 | 博客
  • 博客访问: 392089
  • 博文数量: 95
  • 博客积分: 3020
  • 博客等级: 中校
  • 技术积分: 865
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-20 10:40
文章分类

全部博文(95)

文章存档

2011年(3)

2010年(8)

2009年(24)

2008年(60)

我的朋友

分类: Java

2008-12-22 20:54:37

打包(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。

(注)不要过分依赖自动装箱和拆箱,你还是必须知道基本数据类型与对象的差异,否则容易出错。

 

阅读(791) | 评论(0) | 转发(0) |
0

上一篇:JAVA输入与输出

下一篇:男人的绝妙爱语

给主人留下些什么吧!~~