我是靠谱客的博主 眼睛大小兔子,最近开发中收集的这篇文章主要介绍java类的三种初始化块的执行顺序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java类的三种初始化块的执行顺序

java里初始化一个类的对象,通过初始化块或者构造方法进行数据赋值。与其相关的执行代码有这么几种:

  • 静态初始化块
  • 初始化块
  • 构造方法


静态初始化块

静态初始化块只在类加载时执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。


非静态初始化块

非静态初始化块在每次初始化实例对象的时候都执行一次,可以给任意变量赋值。


构造方法

在每次初始化实例对象时调用。


重点:执行顺序->

  1. 在加载类时执行一次静态初始化块(之后不再调用)。
  2. 在每次初始化实例对象时:先执行非静态初始化块,
  3. 再执行构造方法。

若是概念不好懂,请看如下实例:

package com.test;

public class Test{

    String name; // 声明变量name
    String sex; // 声明变量sex
    static int age;// 声明静态变量age // 构造方法 public Test() {  System.out.println("通过构造方法初始化name"); name = "tom"; } // 初始化块 { System.out.println("通过初始化块初始化sex"); sex = "男"; } // 静态初始化块 static { System.out.println("通过静态初始化块初始化age"); age = 20; } public void show() { System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age); } public static void main(String[] args) { // 创建对象 Main test1 = new Test(); Main test2= new Test();  // 调用对象的show方法 test1.show(); test2.show(); } } output: 通过静态初始化块初始化age 通过初始化块初始化sex 通过构造方法初始化name 通过初始化块初始化sex 通过构造方法初始化name 姓名:tom,性别:男,年龄:20 姓名:tom,性别:男,年龄:20

最后

以上就是眼睛大小兔子为你收集整理的java类的三种初始化块的执行顺序的全部内容,希望文章能够帮你解决java类的三种初始化块的执行顺序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部