java基本类型的包装类型_java基本类型与包装类型

基本数据类型:byte,int,       short, long, boolean,char,       float,double等

包装类型     : Byte,Integer,Short,Long,Boolean,Character,Float,Double等

基本类型(primitive type)

不用new来创建变量,而是创建一个并非是“引用”的“自动”变量。这个变量拥有它的“值”,并置于堆

栈中,因此更加高效。要确定每种基本类型所占存储空间的大小。

基本类型            大小           最小值             最大值         包装器类型

boolean                -             -                   -         Boolean

char              6bit              Unicode 0      Unic ode 2(16)-1   Character

byte                       8bit                  -128                +127               Byte

short                      16bit                   -2(15)             2(15)-1           Short

int                          32bit                  -2(31)              2(31)-1           Integer

long                       64bit                 -2(63)              2(63)-1           Long

float                       32bit                 IEEE754           IEEE754          Float

double                   64bit               IEEE754            IEEE754          Double

void                        -                       -                        -                 Void

Java整型

int

4字节(32位)

-2147483648 ~ 2147483647   (正好超过20亿)

short

2字节(16位)

-32768 ~ 32767

long

8字节(64位)

-9223372036854775808 ~ 9223372036854774807

byte

1字节(8位)

-128 ~ 127

浮点类型

float

4字节(32位)

大约±3.40282347E+38F (有效位数为6-7位)

double

8字节(64位)

大约±1.79769313486231570E+308 (有效位数为15位)

一些需要注意:

1

4f1150b881333f12a311ae9ef34da474.pngif(x==Double.NaN)//is never true

1

4f1150b881333f12a311ae9ef34da474.pngif(Double.isNaN(x))//check whether is "not a number"

浮点数值不适合用于禁止出现舍入误差的金融计算中。例如System.out.println( 2.0 - 1.1);将打印0.899999999999999,而不是0.9。因为浮点数值采用二进制系统表示,而二进制无法精确表示分数1/10,就像十进制无法精确表示1/3一样。如果需要在数值计算中不含有舍入误差,就应该使用BigDecimal类。

一、 包装类(Wrapper Class)共同的方法

JAVA的包装类Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。

包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示

包装类对应表 基本数据类型 包装类

byte         Byte

boolean   Boolean

short        Short

char         Character

int            Integer

long         Long

float         Float

double     Double

在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一直,只是类名的第一个字母大写即可。

值得说明的是,java是可以直接处理基本类型的,但是在有些情况下我们需要将其作为对象来处理,这时就需要将其转化为包装类了.所有的包装类(Wrapper Class)都有共同的方法,他们是:

(1)带有基本值参数并创建包装类对象的构造函数.如可以利用Integer包装类创建对象,Integer obj=new Integer(145);

(2)带有字符串参数并创建包装类对象的构造函数.如new Integer("-45.36");

(3)可生成对象基本值的typeValue方法,如obj.intValue();

(4)将字符串转换为基本值的 parseType方法,如Integer.parseInt(args[0]);

(5)生成哈稀表代码的hashCode方法,如obj.hasCode();

(6)对同一个类的两个对象进行比较的equals()方法,如obj1.eauqls(obj2);

(7)生成字符串表示法的toString()方法,如obj.toString().

转换关系:

基本类型------>包装器类

Integer obj=new Integer(145);

包装器类------>基本类型

int num=obj.intValue();

字符串------>包装器类

Integer obj=new Integer("-45.36");

包装器类------>字符串包装器类

String str=obj.toString();

字符串------>基本类型

int num=Integer.parseInt("-45.36");

基本类型------>字符串包装器类

String str=String.valueOf(5);

在一定的场合,运用java包装类来解决问题,能大大提高编程效率.

二、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.

posted on 2013-05-02 15:49 宏才 阅读(2393) 评论(0)  编辑  收藏 所属分类: java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值