static final与final修饰的常量有什么不同
2024-08-28 07:44:42
最近重头开始看基础的书,对一些基础的概念又有了一些新的理解,特此记录一下
static final修饰的常量:
- 静态常量(static修饰的全部为静态的),编译器常量,编译时就确定其值(java代码经过编译器把.java源文件编译成.class字节码文件.经过jvm解释成机器码)
- 存放于方法区的静态常量池中,在编译时就已经存放
- 如果调用此常量的类并不是定义这个常量的类,那么不会初始化定义这个常量的类,节省了内存资源的开销
class Demo{ }
代码如下
class Demo{ private static final int A=1;//当final修饰的变量为成员变量时,必须在声明时赋值,或者在构造方法中赋值. public static void main(String[] args){ System.outprintln(Demo.A);//并不会去加载Demo这个类,减少内存资源 } }
final修饰的常量
- 类加载时确定或者时机更靠后
- 当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值
最新文章
- StatePattern(状态模式)
- 基于Quick-cocos2d-x的资源更新方案 二
- [Django]下拉表单与模型查询
- cookie 和session 的区别详解
- php 正则表达式的使用
- Windows—JDK安装与环境变量配置
- asp.net core 之静态文件目录的操作
- c/c++指针
- ACM - 概率、期望题目 小结(临时)
- FreeMarker笔记 第四章 其它
- (转)从集中到分布,解读网络视频IT架构变迁
- 多线程程序设计学习(4)guarded suspension模式
- SQL Server中生成测试数据
- Python中导入第三方声源库Acoular的逻辑解释以及Acoular的下载
- ES7的async/await
- Nhibernate 使用 (二)
- mysql存储引擎选择(转)
- 02: CMDB设计思路
- 【BZOJ】1831: [AHOI2008]逆序对
- secFox setting