Java基础-代码块及其细节

代码块概念:
注意调用时机

好处与使用场景

将构造器的冗余部分提取到代码块 每个构造器执行时都会先执行代码块

静态代码块与普通代码块的区别

注意:创建对象实例时,静态代码块只会被调用一次

例子`

java 复制代码
public Class DD{
	static{
		//打印"DD"
	}
	{
		//打印"new"
	}
}
DD d=new DD();
DD d1=new DD();

结果 DD被打印一次而new被打印两次

创建对象时类的调用顺序

示例

执行顺序 aaa父类(Object )->aaa普通代码块-> aaa构造器-> bbb普通代码块->bbb构造器

继承时的代码块初始化顺序

new的时候两个动作(类加载+初始化)

静态代码块和属性(父>子)->(普通代码块和属性->构造器)(父>子)

示例:

父类静态代码块 静态属性

子类静态代码块 静态属性

父类普通方法普通属性

父类构造方法

子类普通方法普通属性(若有多个按定义顺序执行)

父类普通方法普通属性

相关推荐
云知谷4 分钟前
【经典书籍】《代码整洁之道》第六章“对象与数据结构”精华讲解
c语言·开发语言·c++·软件工程·团队开发
dragoooon3412 分钟前
[Linux——Lesson23.线程概念与控制:线程基础]
java·开发语言·jvm
带刺的坐椅22 分钟前
Solon Web 的“分身术”:单应用多端口监听,化身多重服务
java·web·solon·端口·单体多模块
xixixi7777723 分钟前
攻击链重构的具体实现思路和分析报告
开发语言·python·安全·工具·攻击链
装不满的克莱因瓶38 分钟前
【项目亮点】基于EasyExcel + 线程池解决POI文件导出时的内存溢出及超时问题
java·jvm·excel·线程池·async·虚拟机·easyexcel
蓝桉~MLGT39 分钟前
Python学习历程——模块
开发语言·python·学习
Lisonseekpan39 分钟前
IntelliJ IDEA 快捷键全解析与高效使用指南
java·ide·后端·intellij-idea
Fantasydg41 分钟前
外卖项目 day01
java
SeaTunnel41 分钟前
结项报告完整版:Apache SeaTunnel 支持 Flink 引擎 Schema Evolution 功能
java·大数据·flink·开源·seatunnel
q***71851 小时前
常见的 Spring 项目目录结构
java·后端·spring