java枚举加载顺序_java 中类的加载顺序(转)

1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化

2、只有在调用new方法时才会创建类的实例

3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法

4、类实例销毁时候,首先销毁子类部分,再销毁父类部分

public classParent

{public static int t =parentStaticMethod2();

{

System.out.println("父类非静态初始化块");

}static{

System.out.println("父类静态初始化块");

}publicParent()

{

System.out.println("父类的构造方法");

}public static intparentStaticMethod()

{

System.out.println("父类类的静态方法");return 10;

}public static intparentStaticMethod2()

{

System.out.println("父类的静态方法2");return 9;

}

@Overrideprotected void finalize() throwsThrowable

{//TODO Auto-generated method stub

super.finalize();

System.out.println("销毁父类");

}

}

public class Child extendsParent

{

{

System.out.println("子类非静态初始化块");

}static{

System.out.println("子类静态初始化块");

}publicChild()

{

System.out.println("子类的构造方法");

}public static intchildStaticMethod()

{

System.out.println("子类的静态方法");return 1000;

}

@Overrideprotected void finalize() throwsThrowable

{//TODO Auto-generated method stub

super.finalize();

System.out.println("销毁子类");

}

}

public classTest

{public static voidmain(String[] args)

{//TODO Auto-generated method stub

Parent.parentStaticMethod();//Child child = new Child();

}

}

输出

父类的静态方法2

父类静态初始化块

父类类的静态方法

类中static 方法在第一次调用时加载,类中static成员按在类中出现的顺序加载。当调用静态方法2时输出

父类的静态方法2

父类静态初始化块

父类的静态方法2

注释掉Parent.parentStaticMethod();

去掉注释Child child = new Child();

48304ba5e6f9fe08f3fa1abda7d326ab.png

父类的静态方法2

父类静态初始化块

子类静态初始化块

父类非静态初始化块

父类的构造方法

子类非静态初始化块

子类的构造方法

48304ba5e6f9fe08f3fa1abda7d326ab.png

java 中类的加载顺序

1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化

2、只有在调用new方法时才会创建类的实例

3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法

4、类实例销毁时候,首先销毁子类部分,再销毁父类部分

public classParent

{public static int t =parentStaticMethod2();

{

System.out.println("父类非静态初始化块");

}static{

System.out.println("父类静态初始化块");

}publicParent()

{

System.out.println("父类的构造方法");

}public static intparentStaticMethod()

{

System.out.println("父类类的静态方法");return 10;

}public static intparentStaticMethod2()

{

System.out.println("父类的静态方法2");return 9;

}

@Overrideprotected void finalize() throwsThrowable

{//TODO Auto-generated method stub

super.finalize();

System.out.println("销毁父类");

}

}

public class Child extendsParent

{

{

System.out.println("子类非静态初始化块");

}static{

System.out.println("子类静态初始化块");

}publicChild()

{

System.out.println("子类的构造方法");

}public static intchildStaticMethod()

{

System.out.println("子类的静态方法");return 1000;

}

@Overrideprotected void finalize() throwsThrowable

{//TODO Auto-generated method stub

super.finalize();

System.out.println("销毁子类");

}

}

public classTest

{public static voidmain(String[] args)

{//TODO Auto-generated method stub

Parent.parentStaticMethod();//Child child = new Child();

}

}

输出

父类的静态方法2

父类静态初始化块

父类类的静态方法

类中static 方法在第一次调用时加载,类中static成员按在类中出现的顺序加载。当调用静态方法2时输出

父类的静态方法2

父类静态初始化块

父类的静态方法2

注释掉Parent.parentStaticMethod();

去掉注释Child child = new Child();

48304ba5e6f9fe08f3fa1abda7d326ab.png

父类的静态方法2

父类静态初始化块

子类静态初始化块

父类非静态初始化块

父类的构造方法

子类非静态初始化块

子类的构造方法

48304ba5e6f9fe08f3fa1abda7d326ab.png

JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的, 静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。

先初始化父类的静态代码--->初始化子类的静态代码-->

初始化父类的非静态代码--->初始化父类构造函数--->

初始化子类非静态代码--->初始化子类构造函数

http://www.cnblogs.com/guoyuqiangf8/archive/2012/10/31/2748909.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java相遇问题_两车追及或相遇问题(hdu1275)数学题

两车追及或相遇问题Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 902 Accepted Submission(s):259Problem Description外号叫“猪头三”的小学生在数学课上,经常遇到两车相遇或追及的方程题,…

java常用class类_java常用类

java常用类内部类1.成员内部类:在一个类的内部定义一个完整的类例如:外部类public class Body{内部类class Header{}}内部类可以直接访问外部类的私有成员,而且不破坏封装内部类可以为外部类提供必要的功能组件,成员内部类 在类的…

mysql 分类计数器_PHP MySQL映像计数器

我是PHP新手,一直在研究计数器.计数器很好用,但是现在我想将数字转换成图像.我创建了12张图片0-9,一个空格和一个逗号图片.我在上下搜索,以获取将数字格式转换为图像所需的提示,但没有成功.到目前为止,我所发现的就是如何仅使用文件PHP / MySQL来建立基本的计数器,以及如何使用…

java gc时会暂停运行吗,java gc 项目终止运行

当前位置:我的异常网 编程 java gc 项目终止运行java gc 项目终止运行www.myexceptions.net 网友分享于:2013-09-03 浏览:6次java gc 项目停止运行首先感谢阿宝同学的帮助,我才对这个gc算法的调整有了一定的认识,而不是停留在过…

php 取消页面一些样式,jquery如何去除样式

jquery去除样式的方法:1、使用【removeClass()】方法,代码为【removeClass(function(index,class))】;2、使用toggleClass方法,代码为【toggleClass(class)】。本教程操作环境:windows7系统、jquery3.2.1版&#xff0c…

matlab对经济指标分析,经济背景下的数据预测分析--基于matlab建模(郑铿城)

1、经济预测概述经济预测有三个要素,实际资料是预测的依据;经济理论是预测的基础;数学模型是预测的手段;经济预测的内容包括生产和资源预测,市场预测,国民收入分配预测,居民生活质量预测等。预测…

php nginx 静态资源,Nginx实践篇(1)- Nginx作为静态资源web服务 - 静态资源压缩

一、静态资源web服务1. 静态资源类型类型文件类型浏览器端渲染HTML、CSS、JS图片JEPG、GIF、PNG视频FLV、MPEG文件TXT等其他下载文件2. 静态资源服务场景-CDN二、静态资源核心配置1. 文件读取 sendfilesendfile 是一种高效传输文件的模式.sendfile设置为on表示启动高效传输文件…

php将get传参解析成数组,php解析url (parse_url) 参数成数组 (parse_str)

今天首先让我们为天津8.12大爆炸和陕西山阳山体滑坡遇难的同胞默哀3分钟,祝愿受伤的群众早日康复,脱离危险,希望国家严惩事故责任人,安抚受损群众。希望杯具以后不再发生……最近天灾人祸,大家出行一定要注意安全&…

猛将赵云java,这五位三国猛将临危救主,赵云只能排第二位,第一位大家都服...

曹洪,曹子廉。是曹操的从弟,在《三国演义》小说中,最早跟随曹操起兵,虽然战斗力没有一流战将那么强悍,但是此人在曹操起兵讨伐董卓时,曹操在荥阳被徐荣打败,坐骑丢失。正要被徐荣士兵解决的时刻…

用python画三维图、某区域的高程,python - 在PyQt中绘制具有高程和降低效果的3D矩形/多边形 - SO中文参考 - www.soinside.com...

据我所知,没有内置的PyQt 3D绘制小部件/功能,因为您只能绘制2D多边形。但我们可以创建一个自定义类来模拟3D绘画。从您的Java链接reference:Java支持3D矩形,但第三维的效果不是很明显。由于海拔较低,效果可以忽略不计。…

2024年PMP考试新考纲-PMBOK第七版-项目管理原则真题解析(续3)

马上就要进入2024年了,要参加2024年PMP一季度考试的小伙伴可以准备起来了。2024年的PMP考试将继续采用新考试大纲,考试内容包括PMBOK第六版、PMBOK第七版和敏捷实践指南,而且敏捷(或者叫混合)的项目环境将占比超过50%&…

linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘

[linux学习笔记]之一:ubuntu ch340调试备忘已有 2183 次阅读2016-11-8 21:52|个人分类:linux最近迷上了Linux,入了一块板。电脑使用win7ubuntu 双系统,可是调试的时候就麻烦了,ubuntu下写好sd卡镜像,调试的时候还要切换…

嵌入式linux 配置usb otg,嵌入式linux系统环境下USB设备的驱动实现

0 引言嵌入式linux系统环境以其易于移植裁减、内核小、效率高、完整、原代码开放及性能优异等特点,在嵌入式领域得到了非常广泛的应用。Linux的USB设备端的源代码中主要有USB device的海量存储设备、串口设备、网络设备等设备驱动程序及各种USB device控制器芯片的…

linux 上下文切换监控,[Linux] 查看进程的上下文切换pidstat

各个进程之间是共享 CPU 资源的,在不同的时候进程之间需要切换,让不同的进程可以在 CPU 执行,那么这个一个进程切换到另一个进程运行,称为进程的上下文切换。进程是由内核管理和调度的,所以进程的切换只能发生在内核态…

linux怎么休眠快捷键,在Deepin系统中创建右键休眠选项的方法

本文介绍在深度Deepin操作系统中创建右键休眠选项,以方便你更快的进入到系统休眠当中,实现方法非常简单,按照下面的步骤进行就可以了。休眠的好处系统休眠,可以让平时的工作环境保存到硬盘中,以便开机后便可立即进入工…

android 自定义推流器,Android直播实现 Android端推流、播放

最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码就可实现编码、推…

android 聊天功能实现,Android聊天背景功能实现

解决输入法弹出时背景被顶上去或者挤压变形的问题先看效果图:Screenshot_1510219375.pngScreenshot_1510219378.png实现方案:package com.qiangqiang.chatback.views;import android.content.Context;import android.util.AttributeSet;import android.v…

小技巧来助阵 玩转Google Chrome(谷歌浏览器)

核心提示:Google Chrome是由Google开发的一款设计简单、高效的Web浏览工具。 Chrome问世已经有段时间了,相关的应用技巧也开始被挖掘出来,这里小编教你3则小技巧,让Chrome更满足你的需求。 1、单进程运行:Chrome的多…

谷歌浏览器怎么下载视频 Google Chrome下载视频方法

核心提示:现在我来教大家谷歌浏览器怎么下载视频 Google Chrome下载视频方法。 谷歌浏览器怎么下载视频 Google Chrome下载视频方法 我们经常会在线看一些网页视频,但是网站的视频下载都只支持自己的客户端,如果每家网站的客户端都安装的话那…

android 日程安排view,RecyclerView 列表控件中简单实现时间线

时间时间,时间,时间啊;走慢一点吧~看见很多软件中都有时间线的东西,貌似天气啊,旅游啊什么的最多了;具体实现方式很多,在本篇文章中讲解一种自定义View封装的方式。效果先来看看效果…