Java常量总结

Java中有多种常量的比较方式,以下进行总结:

常量池的意义:常量池是为了避免频繁的创建和销毁对象而影响系统性能,其实现了对象的共享。

注:其中Float和Double为什么没有设置常量池技术呢?

回答:其实我在网上查了很久,都没有一个非常明确说明没有其常量池的原因。我个人的理解是,常量池的目的就是为了避免频繁的创建和销毁对象而影响系统性能,以Integer为例,设置[-128,127]申明变量是命中此区间中的数时,如果常量池中存在这个变量,则返回这个变量的地址,如果没有这个变量,则在常量池中创建这个常量存入常量池,并返回该地址。个人理解由于Float和Double带小数(非实数),很难去界定一个范围,使之被命中的概率降低,大概率情况下还是会无法命中(如果我们界定一个我们所谓的合理区间),那么设置常量池的意义就不大了。

基本类型的包装类和字符串类有两种创建方式:

(1)常量式赋值创建,放在栈内存当中(即被常量化)

Integer a = 10;

String str = "abc";

(2)new对象进行创建,放在堆内存中(不会常量化)

Integer a = new Integer(10);

String str = new String("abc");

注意ÿ

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值