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. 父类静态与非静态分别均在子类之前执行

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

  • 相关阅读:
    Linux配置防火墙 开启80端口
    微信支付调用JSAPI缺少参数:timeStamp
    php解压zip文件
    css JavaScript 笔记
    css
    html标签
    模拟服务器返回html
    网页特殊符号HTML代码大全
    selectors模块
    select
  • 原文地址:https://www.cnblogs.com/chenxingyang/p/11835930.html
Copyright © 2011-2022 走看看