zoukankan      html  css  js  c++  java
  • java 中的静态(static)代码块

    类字面常量

    • final 静态域不会触发类的初始化操作
      • 非 final static 静态域(以及构造器其实是一种隐式的静态方法)
      • Class.forName():会自动的初始化;
        • 使用 .class来创建对 class 对象的引用,不会自动地初始化该 class 对象,初始化被延迟到了对静态方法(构造器隐式的是静态的)或者非final静态域(注意final静态域不会触发初始化操作)进行首次引用时才执行。

    1. static{} 静态代码块与 {} 非静态代码块

    • 二者均是在 JVM 加载类时,且在构造函数执行之前执行,在类中可以定义多个, 一般在代码块中对一些 static 变量进行赋值;
    • 静态代码块的执行顺序要先于非静态代码块(静态代码块 ⇒ 非静态代码块 ⇒ 构造方法)
    • 静态代码块仅在第一次调用 new 时仅执行一次,之后不再执行,而非静态代码块在每 new 一次就执行一次,
      • 非静态代码块可在普通方法中定义,

    2. static{} 静态代码块与静态方法

    • 静态代码块必须在项目启动的时候就执行,这种代码是主动执行的,
      • 而需要在项目启动的时候就初始化,不通过创建对象,由其他程序来调用,需要使用静态方法,显然这种代码是被动执行的;静态方法在类加载的时候,就已经加载,可以用类名直接调用;
    • 如 main 方法就必须是静态的,其作为程序的入口;

    references

  • 相关阅读:
    Xcode代码块快捷输入
    Git常用命令
    vim
    MACOX中apache配置
    IOS中实现动画的几种方式
    Swift与OC混合编译
    网络图像加载
    我对互联网的理解
    运行时
    自动布局使用
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421308.html
Copyright © 2011-2022 走看看