zoukankan      html  css  js  c++  java
  • 静态Static

    package TestDemo;
    
    public class StaticDemo01 {
        static {
            System.out.println("StaticDemo01静态代码块执行");
        }
    
        // Java没有静态构造函数
        public  StaticDemo01(){
            System.out.println("StaticDemo01构造函数执行");
        }
    
        // 非静态代码块
        {
            System.out.println("StaticDemo01非静态代码块执行");
        }
    }
    package TestDemo;
    
    public class StaticDemo02 extends StaticDemo01 {
        static {
            System.out.println("StaticDemo02静态代码块执行");
        }
    
        // Java没有静态构造函数
        public  StaticDemo02(){
            System.out.println("StaticDemo02构造函数执行");
        }
    
        // 非静态代码块
        {
            System.out.println("StaticDemo02非静态代码块执行");
        }
    }
    package TestDemo;
    
    public class Test {
        public static void main(String[] args){
            StaticDemo02 demo = new StaticDemo02();
        }
    }

    输出

    StaticDemo01静态代码块执行
    StaticDemo02静态代码块执行
    StaticDemo01非静态代码块执行
    StaticDemo01构造函数执行
    StaticDemo02非静态代码块执行
    StaticDemo02构造函数执行

    结论:

    1. 静态代码块仅执行一次且在构造函数与非静态代码块之前执行

    2. 非静态代码块在构造函数之前执行

    3. 父类静态与非静态分别均在子类之前执行

    当类首次被加载时,静态变量就被分配到内存中,知道程序结束才会释放

  • 相关阅读:
    sed
    zabbix时间不同步
    zabbix-agent安装
    zabbix安装(网络)
    sendmail启动报错
    12306:被骂十年不吭声,终成大器
    一文带你看清HTTP所有概念(转)
    为什么 K8s 在阿里能成功(转)
    一文解读融资方式
    一文解读工业互联网 (转)
  • 原文地址:https://www.cnblogs.com/chenxingyang/p/11835930.html
Copyright © 2011-2022 走看看