java中静态初始化块的执行顺序
在java中,其应该是先于所有的方法执行。
下面是测试代码:
public class Test1 {
static{
System.out.println("执行静态初始化块test1...");
}
{
System.out.println("执行初始化块test1");
}
public Test1(){
System.out.println("执行test1构造函数");
}
}
public class Test2 extends Test1{
static{
System.out.println("执行静态初始化块test2...");
}
{
System.out.println("执行初始化块test2");
}
public Test2(){
System.out.println("执行test2构造函数");
}
}
public class Test3 extends Test2{
static{
System.out.println("执行静态初始化块test3...");
}
{
System.out.println("执行初始化块test3");
}
public Test3(){
System.out.println("执行test3构造函数");
}
}
----------------------------------------------------------------------------------------------------
public class Test {
public static void main(String[] args){
Test3 t = new Test3();
}
}
运行结果如图:

从结果即可看出,静态初始化块的执行顺序十分靠前,并且在静态初始化块之间,谁在程序的前面谁先执行。
java中静态初始化块的执行顺序的更多相关文章
- java静态初始化块的执行顺序
先来观察下面的代码 package trr; class Root { static{ System.out.println("Root的静态初始化块"); } { System. ...
- 浅谈Java中静态初始化块跟非初始化块
众所周知在JAVA编程语言中有两种初始化块: 静态初始化块 非静态初始化块 他们到底有什么区别呢?今天就浅谈一下JAVA中静态初始化块和非静态初始化块的区别 静态初始化块 定义: ...
- 请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。
答:执行顺序:静态初始化块->初始化块->构造函数 静态初始化块:在第一次加载类时执行,与对象的创建无关. 构造代码块:在调用构造方法时执行. 构造函数:在调用构造函数时执行.
- java类的初始化块/执行顺序,实例化对象数据赋值
java里初始化一个类的对象,通过初始化快或者构造方法进行数据赋值.与其相关的执行代码有这么几种: 静态初始化块 初始化块 构造方法 静态初始化块 静态初始化块只在类加载时执行一次,同时静态初始化块只 ...
- Java中四大代码块的执行顺序(附code)
验证证的方法是写code,如下: public class test { static class A { public static String name = "hello"; ...
- 关于java中三种初始化块的执行顺序
许多小伙伴对于java中的三种初始化块的执行顺序一直感到头疼,接下来我们就来分析一下这三种初始化块到底是怎么运行的.有些公司也会将这个问题作为笔试题目. 下面通过一段代码来看看创建对象时这么初始化块是 ...
- Java初始化块及执行顺序
理解 初始化块又称为代码块.属于类中的第四大成员.本质上是一个方法,它也有方法体,但没有方法名,没有参数,没有返回,而且也不是通过对象或类名显式调用,而是通过隐式调用 是构造器的补充 语法 [修饰符] ...
- Java 中静态代码块初始化问题测试
Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...
- java中静态代码块,非静态代码块,构造函数
关于静态代码块 静态代码块的写法: static { System.out.println("我是静态代码块"); } 静态代码块的特点: 1.执行优先级高于非静态的初始化块,它会 ...
随机推荐
- 阻塞队列BlockingQueue之ArrayBlockingQueue
ArrayBlockingQueue 是数组实现的有界阻塞队列,此队列按照先进先出(FIFO)的原则对元素进行排序. 构造方法: public ArrayBlockingQueue(int capa ...
- ASP学习笔记1
一.变量 1.1 声明变量 dim name name="Donald Duck" response.write("My name is: " & na ...
- mysql渗透过程
1 打开目标站点:www.xxx.com 2 注册账号并登录,大概找下注入点,没找到 3 用namp -A -T4 目标站点扫描开放的服务 发现mysql等 4 猜弱口令 + 字典 对mysql进行 ...
- Bugku-CTF之本地包含( 60)
Day36
- AcWing 868. 筛质数 线性筛法
#include <iostream> #include <algorithm> using namespace std; ; int primes[N], cnt; bool ...
- python+tkinter制作一个可自定义的动态时钟及详细解释,珍藏版
1.效果图 2.完整代码 #第1步:导出模块 from tkinter import * import math,time #第2步:定义窗口的相关设置 root = Tk() root.title( ...
- 吴裕雄 python 机器学习——KNN分类KNeighborsClassifier模型
import numpy as np import matplotlib.pyplot as plt from sklearn import neighbors, datasets from skle ...
- CSS学习(8)盒模型
box:盒子,每个元素在页面中都会生成一个矩形区域(盒子) 盒子类型: 1.行盒,display属性=inline的元素,不换行(默认值) 2.块盒,display属性=block的元素,换行 浏览器 ...
- SOCV/POCV 开篇 (1)
1.功能:模拟工艺偏差对芯片性能的影响 2. 40nm之前 flat derate模型可以基本覆盖大部分情况 3.AOCV (Adance OCV) 考虑distance 和depth的影响. AOC ...
- Linux下系统版本查询命令
# uname -a (Linux查看版本当前操作系统内核信息) # cat /proc/version (Linux查看当前操作系统版本信息) # cat /etc/issue 或 cat /etc ...