1、Java-装箱与拆箱

重点:Java数据类型


  • Java数据类型:
    (1)基本数据类型;
    数据类型 大小 默认值
    byte(字节) 8 0
    shot(短整型) 16 0
    int(整型) 32 0
    long(长整型) 64 0
    float(浮点型) 32 0.0f
    double(双精度) 64 0.0d
    char(字符型) 16 ‘\u0000 ’
    boolean(布尔型) 1 false

  • 基本数据类型间的转换—–赋值
package cxcf;
public class day1 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
            byte b = 18;   
            char ch = 'a';
            char ch2 = '男';  
            short sh = 20;          
            int a = 10;
            long l = 15L;
            float f = 12.5f;
            double d = 12.45d;
            boolean bl = false;
       }
    }
}

  • 自动转换:1、容量小的类型自动转换成容量大的数据类型,数据类型按照容量大小排序是 byte,short,char–>int–>long–>float–>double; 注意这里是容量大小不是所占字节数
    例如(请参考赋值代码看此例):
int i1=b;
double i2=f;
  • 强制转换:容量大的数据类型转换成容量小的数据类型时,要加上强制转换符;
    例如(请参考赋值代码看此例):
byte i3=(byte)a;
float i4=(float)d;
  • 注意:1、boolean类型不能与其他类型进行转化;
    2、byte转化为short或char时,它们之间属于同级,不能进行自动转化,要加强制符,因为内部转化过成是byte–>int–>short(char),int容量大于short(char),所以需要强转;
    3、byte b1=127; //(程序不报错)
    byte b2=128;//(程序报错)//超过byte范围
    byte b3=(byte)128;//(程序不报错)

    解释:因为溢出了,byte保存范围是:[-128,+127]
    128二进制是:1000 0000
    首位1被解释成符号位,就是负数
    取补码为-1000 0000
    此数是十进制的-128
    4、byte b4=10;
    byte b5=10;
    byte b6=b3+b4;//程序报错
    byte b7=(b3+b4);//程序报错
    byte b8=(byte)(b3+b4);//程序不报错

(2)引用类型;
最简答来说除了8中基本类型以外剩下的都是引用类型:例String、array……

Java为每个原始类型提供了封装类。
原始类型封装类
boolean –>Boolean
char —>Character
byte –>Byte
short –>Short
int –>Integer
long –>Long
float –>Float
double –>Double
因为封装类型是对象,所以可以进行相应的很多对象能力函数操作,这样就可以提供很多基本类型难以完成的工作的完成和实现。
你可以通过以下方式来声明该类型。
(1)装箱:值类型–>引用类型

Integer h=10;//整型10-->Integer 装箱
Integer h2=(Integer)10;//显式装箱

(2)拆箱:引用类型–>值类型

int h3=h;//拆箱
int h4=(int)h;//显式拆箱

猜你喜欢

转载自blog.csdn.net/xyxy66/article/details/79773800