Java类的执行顺序
2024-08-24 07:22:28
在Java中一个类包括:构造块、构造方法、静态块、main方法、普通方法。
通过下面的例子将看出一个类中各种方法的执行顺序:
/**
* @author zhengbinMac
*/
public class Test2 {
static {
System.out.println("静态块");
}
public Test2() {
System.out.println("构造方法");
}
{
System.out.println("构造块");
}
public void ok() {
System.out.println("OK()");
}
public static void main(String[] args) {
System.out.println("main()");
Test2 t2 = new Test2();
System.out.println("new Test2");
t2.ok();
}
}
/*
静态块
main()
构造块
构造方法
new Test2
OK()
*/
可以得出:首先JVM加载这个类(执行静态块)-》执行类的入口main方法-》构造块-》构造方法-》执行调用方法
如果有父类呢?JVM首先会检查当前类的父类是否加载,若没有则加载其父类,然后再加载自己,通过下面的测试说明:
/**
* @author zhengbinMac
*/
public class Son extends father {
{
System.out.println("Son-构造块");
}
static {
System.out.println("Son-静态块");
}
public Son() {
System.out.println("Son-构造方法");
} @Override
public void t1() {
System.out.println("Son()");
}
public static void main(String[] args) {
System.out.println("main()");
Son t = new Son();
t.t1();
}
} class father {
{
System.out.println("Father-构造块");
} static {
System.out.println("Father-静态块");
} public father() {
System.out.println("Father-构造方法");
} public void t1() {
System.out.println("Father()");
}
}
// 输出
/*
Father-静态块
Son-静态块
main()
Father-构造块
Father-构造方法
Son-构造块
Son-构造方法
Son()
*/
其中静态块,用static关键字声明,JVM加载类时执行,仅执行一次。
其中构造块,类中直接用{}声明,在每次创建对象时执行。
注意,静态块会按照声明的顺序执行。如下面这两个例子:
最新文章
- Android中使用ExpandableListView实现好友分组
- Windows批处理:配置防火墙规则、开启远程桌面
- CentOS默认开放的本地端口范围
- 在CentOS 6.6下安装与配置mysql
- wicket基础应用(1)--使用wicket对表单中的数据进行验证
- [原]携程预选赛A题-聪明的猴子-GCD+DP
- 【MINA】缓存区ByteBuffer和IOBuffer你要了解的常用知识
- [问题]编译报错:clang: error: linker command failed with exit code 1及duplicate symbol xxxx in错误解决方法之一
- 可变字典 NSMutableDictionary
- 批量缩放PNG图片.
- C# IOCP服务器
- ERROR<;53761>; - Plugins - conn=-1 op=-1 msgId=-1 - Connection Bind through PTA failed (91). Retrying...
- Golang: pprof
- SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解
- 基于docker 部署 canvas-lms
- 转:linux/unix命令行终端的光标及字符控制快捷键
- Android 音视频开发(五):使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件
- 记一次vue长列表的内存性能分析和优化
- redirection in linux
- hbuilder IOS APP 打包与发布2