在初始化一个类时,到底是先执行哪一部分,总体的执行顺序是什么样的呢,同样,当类被释放时,又是怎样一个顺序呢?先来看下面的代码好了。
- package net.moon.insignificant.commonclass;
-
- class CommonSubClass extends CommonSupperClass {
- static {
- System.out.println("Common sub static initial");
- }
-
- public CommonSubClass() {
- System.out.println("Common sub construct");
- }
-
- @Override
- protected void finalize() throws Throwable {
-
- System.out.println("Common sub finalize");
- super.finalize();
-
- }
- }
-
- abstract class CommonSupperClass {
- public CommonSupperClass() {
- System.out.println("Common super construct");
- }
-
- static {
- System.out.println("Common supper static initial");
- }
-
- @Override
- protected void finalize() throws Throwable {
-
- System.out.println("Common supper finalize");
- super.finalize();
-
- }
- }
-
- public class Demo {
- public static void main(String[] args) {
-
- CommonSubClass css = new CommonSubClass();
- css = null;
- System.gc();
-
- }
-
- }
只要运行上面的代码,结果如下:
- 1. Common supper static initial
- 2. Common sub static initial
- 3. Common super construct
- 4. Common sub construct
- 5. Common sub finalize
- 6. Common supper finalize
其实大家已经清楚,在初始化时,执行的顺序是:
1. 父类的静态代码块
2. 子类的静态代码块
3. 父类的构造方法
4. 子类的构造方法
释放资料时,执行的顺序是:
1. 子类的finalize方法
2. 父类的finalize方法
只是这里一个意外是:竟然父类为抽象类时也同样会调用父类的构造方法,看来抽象类在虚拟机内部还是被实例化了。
分享到:
相关推荐
在本设计装置中,我们探讨了一种创新的工艺方法,用于将笔尖打磨成仿牛角尖的外形。这种设计不仅在视觉上提供了独特的审美体验,还可能改善书写时的手感和性能。以下是对这个技术的详细阐述: 1. 设计理念:仿牛角...
牛角包 :croissant: 轻巧却有用的Bukkit / Spigot / Paper插件库。介绍Croissant是一个轻量级的Java库,它为Bukkit / Spigot / Paper插件提供了命令框架和GUI框架。 以下是其功能的简短摘要: 命令框架无需在插件的...
牛角座接口作为一种广泛应用于电子设备中的连接器,其标准化的设计确保了不同设备间的兼容性和可靠性。本文将详细介绍牛角座接口(以HIF3B系列为例)的标准接线方式、管脚对应以及相关的技术规格,帮助读者更好地...
牛角棋游戏可能包含了多个函数,如初始化棋盘、移动棋子、检查胜利条件、用户输入处理等。每个函数都有特定的职责,通过参数传递信息,并可能返回结果。 4. **数据结构**:游戏状态通常需要存储棋盘布局,这可能...
在深入解读《电子:中国半导体:牛角峥嵘》这篇报告之前,首先要明确几个核心的概念。首先,半导体是指那些在特定温度下导电性能介于导体和绝缘体之间的材料,常被应用于制造各种电子设备的微小组件中,如晶体管、...
这是一款在线工具箱程序,您可以通过安装扩展增强她的功能 通过插件模板的功能,您也可以把她当做网页导航来使用 ...牛角工具箱源码 轻松打造个性化在线工具箱 安装依赖 full包,已安装依赖,无需重复安装
《牛角包:深入理解Lu Lua REPL与调试器》 牛角包,一款专为Lua语言设计的交互式REPL(Read-Eval-Print Loop)和调试器,为程序员提供了强大的开发工具,使得在Lua编程过程中能够更加高效、便捷地进行代码测试、...
5. **Jackson库**:Jackson是Java的JSON处理器,Elasticsearch使用它来解析和序列化JSON数据。 6. **Guava**:Google的Guava库提供了一组核心库,包括集合、缓存、并发库、原生类型支持、字符串处理、I/O等,对于...
提取关于日期时间操作方法,形成工具类,提升开发效率
在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息可以被编译器或运行时环境用来执行特定的动作。在这个场景中,"java注解方式实现拦截接口重复提交"是为了解决一个常见的...
标题“电子:中国半导体:牛角峥嵘”揭示了这篇文档可能主要探讨的是中国在电子半导体领域的快速发展和崛起。描述中的“牛角峥嵘”是中国成语,用来形容事物发展势头强劲,暗示中国的半导体产业正展现出强大的竞争力...
原牛角源码,即修罗BBS,是一款基于PHP开发的论坛系统,这类系统通常包括前端用户界面、后台管理功能以及数据库交互等组成部分。 【描述】提到的是全站程序打包,这通常指的是包含了网站运行所需的所有文件,包括但...
在IT行业中,转换文档格式是一项常见的任务,尤其在办公自动化和网页预览场景下。本文将详细介绍如何使用OpenOffice在Java环境下实现JPG图片和DOC文档转换为PDF,并进一步将PDF转换为SWF,以便进行在线预览。我们将...
简易牛角座.IntLib
之前一直在找牛角座等各种插座的规格封装,很难找到,最后找到了
电子:中国半导体:牛角峥嵘(2021)(173页).pdf
【标题】"OUPIIN 牛角接头1001系列端子3d" 提供的核心信息是关于一种特定的电气连接器——OUPIIN的1001系列牛角接头,它具备3D设计特点。在电子工程领域,接头或端子是电路系统中至关重要的组成部分,用于安全可靠地...
原牛角源码(修罗bbs)全站程序打包带数据库备份,牛角源码全站数据+全站文件、插件打包分享给大家,有兴趣的可以搭建玩玩! conf文件夹中自己配置数据库链接文件,默认管理账号:admin,密码123456 首页登录后就可以...