Java 初始化块
初始化块是和成员变量、成员函数一个级别的。一般用于类的初始化,也可执行其他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 初始化块相关推荐
- java 初始化块_详解Java中的实例初始化块(IIB)
在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB ).不过我觉得介绍的有点简单了,于是,再写一篇文章详细介绍下吧. Java 语言中,存在三种操作:方 ...
- java面向对象-------静态初始化块
1.构造方法用于对象的初始化!静态初始化块,用于类的初始化操作,在静态初始化块中不能直接访问非static成员. package java面向对象; /** * 测试静态初始化块 */public c ...
- java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题
2019独角兽企业重金招聘Python工程师标准>>> /* * 几大原则 * 一.静态成员变量(Static) * 1.静态成员变量为类变量,所有对象共享同一内存空间 * 2.静态 ...
- 什么是Java实例初始化块
在本篇文章,我将会使用一个例子展示什么是实例变量初始化块,实例初始化块和静态初始化块,然后说明在Java中实例初始化块是如何工作的. 执行顺序 查看下面的代码,你知道哪个先执行吗? package s ...
- Java的知识点10——static关键字、静态初始化块、 参数传值机制、包、导入类import、 静态导入
static 关键字 在类中,用static声明的成员变量为静态成员变量,也称为类变量. 类变量的生命周期和类相同,在整个应用程序执行期间都有效.它有如下特点: 1. 为该类的公用变量,属于类,被该类 ...
- 【Java】 5.9 初始化块
目录 初始化块的语法 静态类的初始化 初始化块的语法 [修饰符] {//可执行语句} [注意]修饰符只能出现static 有static,说明它是类初始化块/静态初始化块 没有static,说明它是实 ...
- 【Java基础】static初始化块
初始化块 当Java创建对象时,系统总是先调用该类里定义的初始化块.如果一个类定义了两个初始化块,则前面定义的初始化块先执行,后面定义的初始化块后执行. 初始化块只在创建Java对象时隐式执行,不能显 ...
- java 静态块初始化_简单了解java中静态初始化块的执行顺序
这篇文章主要介绍了简单了解java中静态初始化块的执行顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在java中,其应该是先于所有的方法执行. ...
- [转载] Java 语言中的实例初始化块 ( IIB) 详解
参考链接: Java中的实例初始化块(IIB) 在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB ).不过我觉得介绍的有点简单了,于是,再写一篇文章详 ...
最新文章
- jquery.dragsort.js 实现拖拽过程遇到的问题
- 小米手机怎么获取 ROOT 权限
- boost::gil::get_num_bits用法的测试程序
- POJ 2263 floyd思想
- c#调用存储过程查询表并返回影响的行数
- undefined reference to `pthread_create‘(linux下Clion使用thread报错)
- Bootstrap 插件的选项
- java kotlin相互调用_Kotlin的互操作——Kotlin与Java互相调用
- java 扫描自定义注解_利用spring 自定义注解扫描 找出使用自定义注解的类
- Unity3d中的属性(Attributes)整理【转载】
- 英语六级翻译训练:教育专题
- 18个小实例入门SQLServer XML查询
- 计算机毕业设计SSM电影票网上订票系统【附源码数据库】
- 矢量绘图软件:Sketch最新版82.1中文版
- 计算机网络速成【应用层】
- 码云推送代码后不显示贡献度
- MSDC 4.3 接口规范(5)
- 微信程序开发小程序交互
- 排序——使每位学生都有座位的最少移动次数
- microbit c语言编程软件,Micro:bit系列教程25:自定义Micro:bit软件包