/**
-
Created with IntelliJ IDEA.
-
Description: If you don’t work hard, you will a loser.
-
User: Listen-Y.
-
Date: 2020-08-04
-
Time: 15:34
*/
class One {
public One() {
System.out.println(“One 构造”);
}
{
System.out.println(“One 实例”);
}
static {
System.out.println(“One 静态”);
}
}
class Two extends One {
public Two() {
System.out.println(“Two 构造”);
}
{
System.out.println(“Two 实例”);
}
static {
System.out.println(“Two 静态”);
}
}
public class Demo1 extends Two{
public static void main(String[] args) {
System.out.println(“开始”);
new Two();
new Two();
System.out.println(“结束”);
}
}
结果为:
One 静态
Two 静态
开始
One 实例
One 构造
Two 实例
Two 构造
One 实例
One 构造
Two 实例
Two 构造
结束
- 分析:
-
代码从main方法开始执行 main方法是Demo的静态方法 就会触发Demo的类加载
-
Two是Demo的父类 所以在加载Demo前会先加载Two 但是呢one又是Two的父类 就又会优先加载
-
加载One的静态代码块输出 One静态
-
加载Two的静态代码块 输出 Two静态
-
Demo没有静态代码块了就会执行main方法的内容 输出 开始
-
在构造Two的实例的时候会先构造One的实例 就会先执行One的代码块和构造方法 然后才执行Two的代码块和构造方法 所以输出One实例 One构造 Two实例 Two构造
-
进行第二次构造Two的时候和第一次构造一样输出One实例 One构造 Two实例 Two构造
-
最后打印结束
- 如果我们稍微改一下代码让Demo不继承Two会发生怎样的情况
/**
-
Created with IntelliJ IDEA.
-
Description: If you don’t work hard, you will a loser.
-
User: Listen-Y.
-
Date: 2020-08-04
-
Time: 15:34
*/
class One {
public One() {
System.out.println(“One 构造”);
}
{
System.out.println(“One 实例”);
}
static {
System.out.println(“One 静态”);
}
}
class Two extends One {
public Two() {
System.out.println(“Two 构造”);
}
{
System.out.println(“Two 实例”);
}
static {
System.out.println(“Two 静态”);
}
}
分享
首先分享一份学习大纲,内容较多,涵盖了互联网行业所有的流行以及核心技术,以截图形式分享:
(亿级流量性能调优实战+一线大厂分布式实战+架构师筑基必备技能+设计思想开源框架解读+性能直线提升架构技术+高效存储让项目性能起飞+分布式扩展到微服务架构…实在是太多了)
其次分享一些技术知识,以截图形式分享一部分:
Tomcat架构解析:
算法训练+高分宝典:
Spring Cloud+Docker微服务实战:
最后分享一波面试资料:
切莫死记硬背,小心面试官直接让你出门右拐
1000道互联网Java面试题:
Java高级架构面试知识整理:
aj-1719264901784)]
Spring Cloud+Docker微服务实战:
[外链图片转存中…(img-WoilnThS-1719264901785)]
最后分享一波面试资料:
切莫死记硬背,小心面试官直接让你出门右拐
1000道互联网Java面试题:
[外链图片转存中…(img-H3FmQqpp-1719264901785)]
Java高级架构面试知识整理:
[外链图片转存中…(img-vRsbbrqV-1719264901786)]