(2) 子类的静态属性初始化和静态代码块
(3) 父类普通属性初始化和普通代码块
(4) 父类构造器显示代码
(5) 子类普通属性初始化和普通代码块
(6) 子类构造器显示代码
}
即
(1) 先加载类
① 加载父类:父类的静态
② 加载子类本身:子类本身的静态
(2) 创建对象
① 加载父类非静态
② 加载父类构造器自身内部代码
③ 加载子类非静态
④ 加载子类构造器自身内部代码
}
**注:**
1.静态属性属于类和所有对象,只在第一次加载类时被初始化一次,之后再加载类也不会进行初始化;静态代码块同理。
2.属性初始化和代码块优先级一样,按照代码书写的先后顺序执行。
##### [](https://gitee.com/vip204888/java-p7)(二)类加载时机
(1)用new创建实例对象时,如果是子类创建对象,则父类也会被加载
(2)使用静态成员时,通常为使用静态属性和静态方法
##### [](https://gitee.com/vip204888/java-p7)(三)测试代码
public class CodeBlockDetail04 {
public static void main(String[] args) {
new B02(); //创建对象
}
}
class A02 {
private static int n1 = getVal01();
static {
System.out.println("A02的第一个静态代码块...");
}
{
System.out.println("A02的第一个普通代码块...");
}
public int n2 = getVal02();
public static int getVal01(){
System.out.println("getVal01()");
return 10;
}
public int getVal02(){
System.out.println("getVal02()");
return 20;
}
public A02(){
System.out.println("A02的构造器");
}
}
class B02 extends A02 {
private static int n3 = getVal03();
static {
System.out.println("B02的第一个静态代码块");
}
{
System.out.println("B02的第一个普通代码块");
}
最后
一次偶然,从朋友那里得到一份“java高分面试指南”,里面涵盖了25个分类的面试题以及详细的解析:JavaOOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。
这不,马上就要到招聘季了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。
请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析
高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。
[外链图片转存中…(img-vgD46pa7-1628236869581)]
请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析
资料领取方式:点击【java高分面试指南-25大专题分类】