8大基本数据类型

1.基本类型
boolean(true、false)
byte,short,char->int->long->float->double
(1)在给类型赋值时整型(如123),默认类型为int,加上L为long
(2)浮点型(如3.14159),默认类型为double,加上f为float
(3)byte,short,char 一运算就自动转型为int
(4)向箭头方向可自动转型,逆向需强转(有可能会丢失数据,浮点强转为整型,
小数部分自动丢失)
(5)大小依次为1、2、2、4、8、4、8byte(1byte=8bit)

2.例题与解释

(1) long a = 1;
(2) long b = 12345678910;
(3) Long c = 1;

答案与解释:
(1)正确,右边为int类型,int类型可以自动转型为long,所以正确。
(2)错误,右边为int类型,但大小已超过int类型的范围,所以无法通过编译,所以后
面需要加上L。
(3)错误,右边为int类型,int赋值给Long,即不会触发自动转型,也不会触发自动封箱

3.关于对象池与自动封箱

Long d = 1L;
Long e = 1L;
Long f = 128L;
Long g = 128L;
long h = 128;
(4) System.out.println(d==e);
(5) System.out.println(f==h);
(6) System.out.println(f==g);

运行结果:
true
true
false

首先要知道对象池的概念,java给一部分对象提供了对象池,如String,
Integer、Byte、Short、Long、Character
String对象池先不讨论,而其他5个对象池都是在-128~127的取值范围内是,直接从池中返回地址赋给引用。
(4)true,两个对象之间==比较的是地址,都在-128~127之间,所以返回的都是池内对象的地址,并没有new对象,所以true
(5)true,Long和long之间用==比较,会自动解封,而比较值的大小,所以true
(6)false,超过了对象池的范围,都自动new对象,比较地址当然是false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值