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的时候两个动作(类加载+初始化)

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

示例:

父类静态代码块 静态属性

子类静态代码块 静态属性

父类普通方法普通属性

父类构造方法

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

父类普通方法普通属性

相关推荐
逍遥德1 分钟前
java Map Set List 扩容机制
java·开发语言·list
高山上有一只小老虎6 分钟前
mybatisplus实现分页查询
java·spring boot·mybatis
2501_944521597 分钟前
Flutter for OpenHarmony 微动漫App实战:图片加载实现
android·开发语言·前端·javascript·flutter·php
nbsaas-boot8 分钟前
基于 Java 21 ScopedValue 的多租户动态数据源完整实践
java·开发语言
2301_780669869 分钟前
线程安全、线程同步(三种加锁方式)、线程池(两种创建线程池方式、线程池处理Runnable任务、线程池处理Callable任务)、并发/并行
java
liuc031714 分钟前
Java项目关于不同key的读取
java·开发语言
yaoxin52112316 分钟前
296. Java Stream API - 二元操作符与“单位元“
java·服务器·windows
Zach_yuan33 分钟前
面向对象封装线程:用 C++ 封装 pthread
开发语言·c++·算法
罗伯特_十三34 分钟前
Spring AI ChatModel 使用记录
java·人工智能·spring
毕设源码-朱学姐36 分钟前
【开题答辩全过程】以 基于SpringBoot的律师事务所管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端