1.静态属性属于类和所有对象,只在第一次加载类时被初始化一次,之后再加载类也不会进行初始化;静态代码块同理。
2.属性初始化和代码块优先级一样,按照代码书写的先后顺序执行。
(二)类加载时机
(1)用new创建实例对象时,如果是子类创建对象,则父类也会被加载
(2)使用静态成员时,通常为使用静态属性和静态方法
(三)测试代码
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的第一个普通代码块");
}
private int n4 = getVal04();
public static int getVal03(){
System.out.println("getVal03()");
return 30;
}
public int getVal04(){
System.out.println("getVal04()");
### 最后
**由于篇幅限制,小编在此截出几张知识讲解的图解,有需要的程序猿(媛)可以点赞后[戳这里免费领取全部资料](https://gitee.com/vip204888/java-p7)获取哦**
![P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌](https://img-blog.csdnimg.cn/img_convert/3b9d24d1e29d0d9f9ec309bc0b7bb297.png)
![P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌](https://img-blog.csdnimg.cn/img_convert/ceaaf76521c6cf3733c4376f1c3a695a.png)
![P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌](https://img-blog.csdnimg.cn/img_convert/44f208f590899470c07da60bcc2284ad.png)
![P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌](https://img-blog.csdnimg.cn/img_convert/55dbeb4e466a135f527d83d952424191.png)
![P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌](https://img-blog.csdnimg.cn/img_convert/14e2d071be47079282caa55bc7abb0b2.png)
QR-1628340276549)]
[外链图片转存中...(img-dY0FYD9j-1628340276551)]
[外链图片转存中...(img-x1VvSZXd-1628340276553)]
[外链图片转存中...(img-ijdZMzrW-1628340276555)]