• static final与final修饰的常量有什么不同


    最近重头开始看基础的书,对一些基础的概念又有了一些新的理解,特此记录一下

    static final修饰的常量:

    • 静态常量(static修饰的全部为静态的),编译器常量,编译时就确定其值(java代码经过编译器把.java源文件编译成.class字节码文件.经过jvm解释成机器码)
    • 存放于方法区的静态常量池中,在编译时就已经存放
    • 如果调用此常量的类并不是定义这个常量的类,那么不会初始化定义这个常量的类,节省了内存资源的开销
    1 class Demo{
    2       
    3 }
    代码如下
    class Demo{
    
      private static final int A=1;//当final修饰的变量为成员变量时,必须在声明时赋值,或者在构造方法中赋值.
    
      public static void main(String[] args){
    
        System.outprintln(Demo.A);//并不会去加载Demo这个类,减少内存资源
    
          }
    
    }    

    final修饰的常量

    • 类加载时确定或者时机更靠后
    • 当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值
  • 相关阅读:
    GUI编程
    网络编程
    线程池详解_3
    多线程详解_2
    注解和反射_1
    多线程详解_1
    javaEE简要总结
    MarkDown使用教程简单介绍
    com.sun.xxx.utils不存在问题的解决
    解决npm install安装慢的问题
  • 原文地址:https://www.cnblogs.com/liujia1990/p/8425639.html
Copyright © 2020-2023  润新知