zoukankan      html  css  js  c++  java
  • java代码块的理解

    package 代码块;
    class mmm{
    	//构造块
    	{
    		System.out.println("mmm 1 普通块");//每次实例化都执行一次,且在构造方法之前。
    	}
    	//静态代码块
    	static {
    		System.out.println("mmm 2 static");//优先于构造方法和普通块,且只执行一次
    	}
    	//构造方法
    	public mmm() {
    		System.out.println("mmm 3 构造方法");
    	}
    }
    public class 代码块 {
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		{
    			int x = 1;
    			System.out.println("主类	1 普通块	"+x);//在主类中 普通块
    		}
    		int x = 2;
    		System.out.println("主类	3 mian方法	"+x);
    		new mmm();
    		new mmm();
    		new mmm();
    	}
    	{
    		System.out.println("主类	4 普通块");//在主类中main之外 普通块不会调用
    	}
    	//主类静态代码块
    	static {
    		System.out.println("主类	2 static");//在主类中main之外 普通块会调用,且在main方法之前
    	}
    	
    
    }
    

      输出结果:

     1 主类 2 static
     2 主类    1 普通块    1
     3 主类    3 mian方法    2
     4 mmm 2 static
     5 mmm 1 普通块
     6 mmm 3 构造方法
     7 mmm 1 普通块
     8 mmm 3 构造方法
     9 mmm 1 普通块
    10 mmm 3 构造方法

    总结:

    在一个类中,构造块每次实例化都会执行,且优先于构造方法,static构造块又称为静态代码块,更优先于构造块调用,且只调用一次,一般用来初始化静态属性。

  • 相关阅读:
    ubuntu环境下eclipse的安装以及hadoop插件的配置
    hadoop启动步骤
    Ubuntu下hadoop环境的搭建(伪分布模式)
    volatile关键字作用
    CyclicBarrier&CountDownLatch&Semaphore
    Callable、Future和FutureTask浅析
    Unsafe与CAS
    接口和抽象类的区别
    内部类
    泛型
  • 原文地址:https://www.cnblogs.com/MYDoraemon/p/8948810.html
Copyright © 2011-2022 走看看