zoukankan      html  css  js  c++  java
  • Java中静态代码块,代码块,构造方法优先级、区别及代码示例

    在项目中遇到了代码块的知识点,跑了下测试,写下结论

    • 代码优先级:静态代码块 -> 构造代码块 -> 构造方法
    • 多个代码块优先级,按照“先定义的代码先执行,后定义的代码后执行”原则执行
    • 静态代码块只执行一次
    • 构造代码块在类每次创建对象时都会执行
    • 静态代码块不能存在于任何方法体内

    1.测试一

     1 public class CodeBlock01 {
     2   {
     3     System.out.println("普通代码块1");
     4   }
     5   static {
     6     System.out.println("静态代码块");
     7   }
     8 
     9   public CodeBlock01() {
    10     System.out.println("构造方法");
    11   }
    12 
    13   {
    14     System.out.println("普通代码块2");
    15   }
    16 }
    1   @Test public void testStaticCode(){
    2     new CodeBlock01();
    3     new CodeBlock01();
    4   }

    执行结果:

    静态代码块
    普通代码块1
    普通代码块2
    构造方法
    普通代码块1
    普通代码块2
    构造方法

    结论:

    1. 优先级:静态代码块 -> 代码块 -> 构造方法
    2. 静态代码块只会执行一次
    3. 代码块会在类每次创建对象的时候都创建,就是每次构造方法前都会执行

    2.测试二

     1 public class CodeBlock02 {
     2   {
     3     System.out.println("普通代码块01");
     4   }
     5 
     6   {
     7     System.out.println("普通代码块02");
     8   }
     9 
    10   public CodeBlock02(){
    11     System.out.println("构造方法");
    12   }
    13 }
    1   @Test public void testCodeBlock(){
    2     new CodeBlock02();
    3   }

    执行结果:

    普通代码块01
    普通代码块02
    构造方法

    结论:

    代码块执行顺序,按照“先定义的代码先执行,后定义的代码后执行”原则。

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/liyiran/p/5682675.html
Copyright © 2011-2022 走看看