java基本类型与包装类型
发布日期:2021-09-29 01:26:53 浏览次数:5 分类:技术文章

本文共 2239 字,大约阅读时间需要 7 分钟。

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

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

基本类型(primitive type)

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

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

基本类型            大小           最小值             最大值         包装器类型
boolean                -             -                   -         Boolean
char              16bit              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
if
(x 
==
 Double.NaN)  
//
 is never true

1
if
(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是可以直接处理基本类型的,但是在有些情况下我们需要将其作为对象来处理,这时就需要将其转化为包装类了.所有的包装类(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.

转载地址:https://blog.csdn.net/happydecai/article/details/80177228 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java中接口里定义的成员变量
下一篇:深入理解Java枚举类型(enum) --如何写类培训资料?

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月05日 00时58分29秒