java中的基本类型注意事项

基本类型

java中一共有八个基本类型,

基本类型数据范围默认值存储大小
booleantrue/falsefalse1位
byte[-128~127] (-2^7) – (2^7)-101个字节
short(-2^15)-- (2^15)-102个字节
char0~2^16-1‘\u0000’2个字节
int(-2)^31 – (2)^31-104个字节
float单精度0.0f或0.0F4个字节
double双精度0.0d或0.0D8个字节
long(-2)^63 – (2)^63-10l或0L8个字节

1.关于赋值和运算
正常情况下任何整型常量都是int型,所以当给Long赋值进行运算时要指明常数为长整型,如果没有L或l就得不到正确结果;

int maxValue = Integer.MAX_VALUE;
//long num = 11l//容易混淆
// long num= maxValue +1;//同样会溢出
long num= maxValue +1L;
float  num2 = 0.11F 

同样对于浮点型来说,默认为double,所以声明为float时需要加F或f,由于小写l容易混淆所以最好用大写;

        byte a1 =10,a2 = 9,  a;
        final byte b1 = 4,b2 =3,b;
        //a = a1+a2;编译不通过
        a = (byte)(a1+a2);
        b = b1+b2;//两个同时都为final是不会转型

在进行运算时,会涉及到类型转换
一个double,float变两个
一个long变两个,其他会被变为int类型,此时就需要强制转换或定义为final
2.基本类型的包装类
Integer 、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger、BigDecmail   
其中 BigInteger、BigDecimal没有相对应的基本类型,主要应用于高精度的运算,BigInteger支持任意精度的整数,BigDecimal支持任意精度带小数点的运算。
J2SE5.0后提供了自动装箱与拆箱的功能,所以需要通过包装类来转换。比如:我们可以把int型包装成Integer 类的对象。

        Integer i = 3;//自动装箱
        // 相当于Integer i = Integer.valueOf(3);
        i = i + 2;
        // 此时等于这样
        i = i.intValue() + 2;
        // 等同于 i = Integer.valueOf(i.intValue() + 2);

        Integer a1 = 10, b1 = 127;
        Integer a2 = new Integer(10);//
        Integer a3 = new Integer(12);
        Integer a4 = 127;
        System.out.println(a1==a2);//false
        System.out.println(a1.equals(a2));//true
        System.out.println(a4==b1);//true

从==比较的是栈上的地址,而equals比较的是内容可以看出,Int包装类有在定义时和String类有些相似,由于自动装箱可以将-128~127的int值存储起来当相同时直接共用一个地址;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值