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”);
栈内存读取速度快但容量小,堆内存读取速度慢但容量大
版权声明:本文为weixin_44227389原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。