zoukankan      html  css  js  c++  java
  • java 调用静态方法和构造函数和静态块执行的先后顺序

    构造方法是只有你在new对象的时候才会执行,静态语句块和静态方法在类加载到内存的时候就已经执行了
    ,另外,静态语句块只能给静态变量赋值,里面不能出现方法,同样,静态方法里面也不能出现静态语句块

    追问:
    调用静态方法之前是不是先执行了静态语句块呢
     
    追答:
    对,先是静态语句块执行,然后静态方法加载到内存.
    静态语句块你不管它它自动会执行,而静态方法它一直存在于内存中,只有你用类名点方法名的时候才会执行
    public class ExA {  
        static {  
            System.out.println("父类--静态代码块");  
        }  
       
        public ExA() {  
            System.out.println("父类--构造函数");  
        }  
       
        {  
            System.out.println("父类--非静态代码块");  
        }  
       
        public static void main(String[] args) {  
            new ExB();  
        }  
    }  
       
    class ExB extends ExA {  
        static {  
            System.out.println("子类--静态代码块");  
        }  
        {  
            System.out.println("子类--非静态代码块");  
        }  
       
        public ExB() {  
            System.out.println("子类--构造函数");  
        }  
    }  
     
    执行结果 
    ===== 
    父类--静态代码块 
    子类--静态代码块 
    父类--非静态代码块 
    父类--构造函数 
    子类--非静态代码块 
    子类--构造函数
  • 相关阅读:
    mongodb(2)
    mongodb(1)
    分片集群
    副本集 集群
    java连接腾讯云上的redis
    maven打包
    生成ftp文件的目录树
    从ftp获取文件并生成压缩包
    android 连续点击退出程序
    Android之完美退出方法
  • 原文地址:https://www.cnblogs.com/XJJD/p/8056354.html
Copyright © 2011-2022 走看看