【java】final和final static的区别
2016-03-30 21:51
232 查看
上午在写HBase访问测试用例的时候看到很多常量都用了静态常量的方式,于是就想了想它和final常量的区别。
我们知道java类在加载过程中先加载static类型的代码块变量,而在实例化对象过程中不会再被修改。而final常量会在对象实例化过程中被初始化。
【java类加载顺序http://www.cnblogs.com/guoyuqiangf8/archive/2012/10/31/2748909.html】
可看下面例子:
引用自http://blog.csdn.net/javakuroro/article/details/6817520
最终输出结果为:
sf : a=15 sf : B=18 -------------- sf1 : a=13 sf1 : B=18
从结果可以看出private static final int 类型的B在类加载初始化后值不会再发生改变所以实例化两个对象后值都是18,而final int类型的常量A在两个对象中值是不一样的。
我们知道java类在加载过程中先加载static类型的代码块变量,而在实例化对象过程中不会再被修改。而final常量会在对象实例化过程中被初始化。
【java类加载顺序http://www.cnblogs.com/guoyuqiangf8/archive/2012/10/31/2748909.html】
可看下面例子:
引用自http://blog.csdn.net/javakuroro/article/details/6817520
最终输出结果为:
sf : a=15 sf : B=18 -------------- sf1 : a=13 sf1 : B=18
从结果可以看出private static final int 类型的B在类加载初始化后值不会再发生改变所以实例化两个对象后值都是18,而final int类型的常量A在两个对象中值是不一样的。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树