像这样的情况,自己动手测试下,比谁说的都有说服力!
10年积累的成都网站设计、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有龙山免费网站建设让你可以放心的选择与我们合作。
通过测试,可以看的出静态代码块之间是平级的,按照顺序在执行的!
顺序执行,就是正常情况下
选择执行(分支),就是用if else...可以使用多次,还有个switch case
循环执行,常用的用for循环,while循环,do while循环
就我理解题意好像就这三种
静态初始化块:当类第一次加载时执行。
非静态初始化块:非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被执行。
区别如下:
1、执行次数不同
静态块只执行一次,初始化块可以执行多次。
2、作用不同
静态初始化块仅能初始化类变量,即static修饰的数据成员。
非静态初始化块可以初始化类的实例变量。
扩展资料:
使用Java静态代码块注意事项:
1、它是随着类的加载而执行,只执行一次,并优先于主函数。具体说,静态代码块是由类调用的。类调用时,先执行静态代码块,然后才执行主函数的。
2、静态代码块其实就是给类初始化的,而构造代码块是给对象初始化的。
3、静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。
4、一个类中可以有多个静态代码块。
5、对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)(变量、初始化块)构造器。
java中首先是静态块先执行,静态方法,最后是构造函数。示例如下:
public class ExA {
static {
System.out.println("父类--静态代码块");
}
public ExA() {
System.out.println("父类--构造函数");
}
{
System.out.println("父类--非静态代码块");
}
public static void main(String[] args) {
new ExB();
}
}
class ExB extends ExA {
static {
System.out.println("子类--静态代码块");
}
{
System.out.println("子类--非静态代码块");
}
public ExB() {
System.out.println("子类--构造函数");
}
}
执行结果
=====
父类--静态代码块
子类--静态代码块
父类--非静态代码块
父类--构造函数
子类--非静态代码块
子类--构造函数
因为普通成员变量相比构造方法不管顺序优先加载
java 初始化顺序:
静态成员变量静态初始化块普通成员变量普通的初始化块构造方法(自动初始化时机在调用任何方法之前(构造方法,成员方法))
在创建新的对象时,也就是new一个对象时,会开始初始化这个对象,在初始化这个对象时,会找到对应的类,如果类中有static的静态方法,静态成员变量,普通变量。。。等,会按照这个顺序执行(即按照这个顺序分配内容空间,不管他们的位置在哪里,如果是同类型,则按照上下顺序执行。)
先后顺序如下!
1.静态块
2.块
3.构造器
4.父类构造器
运行顺序为:
1. 静态块
2. 父类构造器
3. 本类中的块
4. 本类的构造器
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款