zoukankan      html  css  js  c++  java
  • 浅谈Java中静态初始化块跟非初始化块

    众所周知在JAVA编程语言中有两种初始化块:
     
    静态初始化块
    非静态初始化块
    他们到底有什么区别呢?今天就浅谈一下JAVA中静态初始化块和非静态初始化块的区别
     
    静态初始化块
    定义:
     
            static{}
     
    执行优先级高于非静态的初始化块,它会在对象装载到系统的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。它将在类加载时被执行。
     
    执行优先级:1
     
    非静态初始化块
    定义:
     
            {}
     
    执行的时候如果有静态初始化块,先执行静态初始化块再执行非静态初始化块,在每个对象生成时都会被执行一次,它可以初始化类的实例变量。非静态初始化块会在构造函数执行时,在构造函数主体代码执行之前被运行。
     
    执行优先级:2
     
    实例:
     1 package com.Demo;
     2 public class Demo03 {
     3     String name;
     4     int age;
     5     //构造函数初始化  优先级:3
     6     public Demo03(String name,int age) {
     7         this.name=name;
     8         this.age=age;
     9         System.out.println("构造函数");
    10     }
    11     
    12     //非静态初始化  优先级:2 
    13     {
    14         System.out.println("非静态初始化");
    15     }
    16     //静态初始化  优先级:1
    17     static{
    18         System.out.println("静态初始化");
    19     }
    20     
    21     
    22     public static void main(String[] args) {
    23         Demo03 demo=new Demo03("zhangs",1);
    24     }
    25 }
    结果:
    静态初始化
    非静态初始化
    构造函数
  • 相关阅读:
    Promise推荐
    ES6推荐
    vue学习笔记之项目创建流程
    vue学习笔记之环境搭建
    前端知识小总结3
    前端知识小总结2
    JavaScript语言精粹の笔记
    JavaScript修炼之道の笔记
    移动端及vue相关问题
    组件式开发Web App
  • 原文地址:https://www.cnblogs.com/JamKong/p/4447082.html
Copyright © 2011-2022 走看看