Java final & 常量 & 常量池

final

  • final可修饰: 类 方法 字段

  • final的类,不能被继承
  • 父类中如果有final的方法,子类中不能改写此方法

  • final的变量,不能再次赋值
    –如果是基本类型的变量,不能修改其值
    –如果是对象实例,不能修改其指针(但是可以修改对象内部的值)

常量

  • 常量:一种不会修改的变量
    – java没有constant关键字
    – 不能修改,final
    – 不会修改/只读/只要一份 static
    – 方便访问public
  • java中的常量:
    –public static final (static【保证只有一份】 final【保证不被修改】位置随意 )
    –建议变量名全大写,以连字符相连,如UPPER_BOUND
  • 特殊常量:接口内定义的变量默认为常量
    –如接口中定义:String color = “yellow” // default:public static final

常量池


包裹类型的常量池

  • java为了提高程序性能,为很多基本类型的包装类和字符串建立常量池
  • 常量池:相同的值只存储一份,节省内存,共享访问
    (确定的值,用一个东西框起来,需要用时,大家都指向这个地方)
    (内存中只有1个127,n1和n2都指向他)

在这里插入图片描述
在这里插入图片描述
第一个true 第二个false


常量字符串常量池

  • java为常量字符串都建立了常量池缓存机制
    在这里插入图片描述
    – 内存中只有一个abc s1等都指向这个abc

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

  • 常量式(字面量)创建和赋值,放在栈内存(将被常量化)
    • Integer a = 10;
    • String b = “abc”;
  • new对象进行创建,放在堆内存(不会被常量化)
    • Integer c = new Integer(10);
    • String d = new String(“abc”);

栈内存读取速度快但容量小,堆内存读取速度慢但容量大
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值