初始化块是和成员变量、成员函数一个级别的。一般用于类的初始化,也可执行其他java代码,作用和构造函数相同。

创建对象时,初始化块在构造函数之前执行。

初始化块分为普通初始化块、静态初始化块。

普通初始化块:
{
.........
}
创建对象时,在构造函数之前执行,没次创建对象时都会执行。

静态初始化块:
static{
........
}
执行优先级高于普通初始化块(在普通初始化块之前执行)。
和其它static成员一样,为类所有,只能访问static成员,但可以写其他java代码。
只在加载到内存时执行1次(只在创建第一个对象时执行),一般用于初始化类的成员(static)、类的公共资源。

一个类中可以有多个初始化块。对于多个普通的初始化块,先定义的优先级更高。

初始化块在javac编译时,原来的初始化块会消失,初始化块中的代码会被放在构造函数的函数体里的最前面。

创建对象时,会先初始化这个类的所有父类。

创建本类的第一个对象:
执行本类的初始化块,要先执行父类的初始化块,要先执行祖类的初始化块;
执行本类的构造函数,要先执行父类的构造函数,要先执行祖类的构造函数。

就是说最先调用祖类的静态初始化块,再调用父类的静态初始化块,再调用本身的静态初始化块;
再调用祖类的普通初始化块,再调用父类的普通初始化块,再调用自身的普通初始化块;
再调用祖类的构造函数,再调用父类的构造函数,再调用本身的构造函数。

示例:

 1 package my_package;
 2
 3 public class Test {
 4
 5     //普通初始化块。初始化块是和成员变量、成员方法一个级别的。创建对象时,在构造函数之前执行。每次创建对象时都会执行。
 6     {
 7         System.out.println("普通初始化块正在执行中");
 8     }
 9
10     //静态初始化块。静态初始化块执行优先级高于普通初始化块,但属于类所有,只会执行一次(只在创建第一个对象时执行)
11     static{
12         System.out.println("静态初始化块正在执行中");
13     }
14
15
16
17     //成员变量
18     private String str="hello";
19
20     //构造函数
21     public  Test(){
22         System.out.println("构造函数正在执行中");
23     }
24
25     //成员方法
26     public void out(){
27         System.out.println("正在执行成员方法");
28     }
29
30     public static void main(String[] args) {
31         new Test();
32         new Test();
33     }
34
35
36 }

转载于:https://www.cnblogs.com/chy18883701161/p/10852308.html

Java 初始化块相关推荐

  1. java 初始化块_详解Java中的实例初始化块(IIB)

    在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB ).不过我觉得介绍的有点简单了,于是,再写一篇文章详细介绍下吧. Java 语言中,存在三种操作:方 ...

  2. java面向对象-------静态初始化块

    1.构造方法用于对象的初始化!静态初始化块,用于类的初始化操作,在静态初始化块中不能直接访问非static成员. package java面向对象; /** * 测试静态初始化块 */public c ...

  3. java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题

    2019独角兽企业重金招聘Python工程师标准>>> /* * 几大原则 * 一.静态成员变量(Static) * 1.静态成员变量为类变量,所有对象共享同一内存空间 * 2.静态 ...

  4. 什么是Java实例初始化块

    在本篇文章,我将会使用一个例子展示什么是实例变量初始化块,实例初始化块和静态初始化块,然后说明在Java中实例初始化块是如何工作的. 执行顺序 查看下面的代码,你知道哪个先执行吗? package s ...

  5. Java的知识点10——static关键字、静态初始化块、 参数传值机制、包、导入类import、 静态导入

    static 关键字 在类中,用static声明的成员变量为静态成员变量,也称为类变量. 类变量的生命周期和类相同,在整个应用程序执行期间都有效.它有如下特点: 1. 为该类的公用变量,属于类,被该类 ...

  6. 【Java】 5.9 初始化块

    目录 初始化块的语法 静态类的初始化 初始化块的语法 [修饰符] {//可执行语句} [注意]修饰符只能出现static 有static,说明它是类初始化块/静态初始化块 没有static,说明它是实 ...

  7. 【Java基础】static初始化块

    初始化块 当Java创建对象时,系统总是先调用该类里定义的初始化块.如果一个类定义了两个初始化块,则前面定义的初始化块先执行,后面定义的初始化块后执行. 初始化块只在创建Java对象时隐式执行,不能显 ...

  8. java 静态块初始化_简单了解java中静态初始化块的执行顺序

    这篇文章主要介绍了简单了解java中静态初始化块的执行顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在java中,其应该是先于所有的方法执行. ...

  9. [转载] Java 语言中的实例初始化块 ( IIB) 详解

    参考链接: Java中的实例初始化块(IIB) 在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB ).不过我觉得介绍的有点简单了,于是,再写一篇文章详 ...

最新文章

  1. jquery.dragsort.js 实现拖拽过程遇到的问题
  2. 小米手机怎么获取 ROOT 权限
  3. boost::gil::get_num_bits用法的测试程序
  4. POJ 2263 floyd思想
  5. c#调用存储过程查询表并返回影响的行数
  6. undefined reference to `pthread_create‘(linux下Clion使用thread报错)
  7. Bootstrap 插件的选项
  8. java kotlin相互调用_Kotlin的互操作——Kotlin与Java互相调用
  9. java 扫描自定义注解_利用spring 自定义注解扫描 找出使用自定义注解的类
  10. Unity3d中的属性(Attributes)整理【转载】
  11. 英语六级翻译训练:教育专题
  12. 18个小实例入门SQLServer XML查询
  13. 计算机毕业设计SSM电影票网上订票系统【附源码数据库】
  14. 矢量绘图软件:Sketch最新版82.1中文版
  15. 计算机网络速成【应用层】
  16. 码云推送代码后不显示贡献度
  17. MSDC 4.3 接口规范(5)
  18. 微信程序开发小程序交互
  19. 排序——使每位学生都有座位的最少移动次数
  20. microbit c语言编程软件,Micro:bit系列教程25:自定义Micro:bit软件包

热门文章

  1. java hibernate unable to read xml_各位大神,这是什么错误啊
  2. 应该用怎样的态度对待孩子?
  3. 引人注目的意思是什么,怎么用引人注目造句,引人注目的近义词有哪些?
  4. 年轻人选择创业时,最好避开门槛低的行业
  5. 网创第一件事是要找一起奋斗的人
  6. 美团创始人王兴说过,创业是一场九死一生的坚持
  7. 指纹支付为什么没有推广?
  8. 区块链优秀gitbook资料
  9. Qt4_实现Edit菜单
  10. sql组合键设置外键_学习SQL:外键