Java心得体会之常量
2016-07-27 19:36
169 查看
Java中的常量主要分为两类一种是我们平时说的123,3.12,"asdw",true,‘C’等,这些值本身我们称呼它们为常量,另一种是我们自己用final定义的赋值之后不能修改的常量,这种常量根据确定值得时间不同分为编译时常量和运行时常量,顾名思义,编译时常量就是指在编译的时候就可以确定值的常量,如 final int a = 12;final string ab="qwe";这种就是出于编译时常量,另外如:final string c = "qwe".length();这种就是运行时常量或者final
int a;然后 a 在构造函数中进行赋值,这时a也是运行时常量。
常量的存储位置 一般为方法区中的常量池,但也并不是绝对。string类型的运行时常量就并不是放在字符串常量池中,而是放到堆中。
想要确定一个常量是运行时常量还是编译时常量很简单,找到目标class文件反编译,看反编译的文件中调用常量的时候显示的是常量的值还是引用,如果是值那就说明是编译期常量,是引用那就是运行时常量。
int a;然后 a 在构造函数中进行赋值,这时a也是运行时常量。
常量的存储位置 一般为方法区中的常量池,但也并不是绝对。string类型的运行时常量就并不是放在字符串常量池中,而是放到堆中。
想要确定一个常量是运行时常量还是编译时常量很简单,找到目标class文件反编译,看反编译的文件中调用常量的时候显示的是常量的值还是引用,如果是值那就说明是编译期常量,是引用那就是运行时常量。
相关文章推荐
- JDBC进行处理大文件和批处理
- ACM中java解题常用方法及准则
- Two Sum
- 实现java中自定义类加载器
- Java主要特性
- CXF与Spring集成
- Java环境变量配置(详细)
- SpringMVC中无法获取SessionFactory的解决!
- DAO层、Service层、Controller层、View层介绍
- Spring 国际化支持 消息传递 以及 AOP 面向方面编程
- java中用小数点分隔字符串问题
- SpringMVC+MyBatis+logback
- Java 设计模式
- Spring Boot使用Druid和监控配置
- Spring-AOP:简介
- javaweb学习总结(十九)——JSP标签
- 关于java限定修饰符
- 【JAVA】继承
- 关于Java中静态属性和静态代码块的执行顺序问题
- Java匿名内部类