java中静态代码执行顺序
1.Java中静态变量只能在类主体中定义,不能在方法中定义。 静态变量属于类所有而不属于方法。
非静态对象和非静态代码块
4.例子(看了一目了然)
class Root{
static {
System.out.println("Root的静态初始化块。");
}
{
System.out.println("Root的普通初始化块。");
}
public Root(){
System.out.println("Root的无参构造函数。");
}
}
class Mid extends Root{
static {
System.out.println("Mid的静态初始化块。");
}
{
System.out.println("Mid的普通初始化块。");
}
public Mid() {
System.out.println("Mid的无参构造函数。");
}
public Mid(String msg) {
System.out.println("Mid的带参数构造函数,参数值为:" + msg);
}
}
class Leaf extends Mid{
static {
System.out.println("Leaf的静态初始化块。");
}
{
System.out.println("Leaf的普通初始化块。");
}
public Leaf() {
super("Leaf传给Mid");
System.out.println("执行Leaf的构造函数。");
}
}
public class staticTest {
public static void main(String[] args) {
new Leaf();
new Leaf();
}
}
执行结果

注意:
静态初始化块仅在第一次使用类时执行初始化操作。上面例子中,第二次创建Leaf对象是,静态初始化块并没有执行。
java中静态代码执行顺序的更多相关文章
- Java 中静态代码块初始化问题测试
Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...
- JavaScript中的代码执行顺序
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head&g ...
- java中静态代码块,构造代码块,以及构造方法的执行顺序
写了许久的代码,却把一些基础的东西都给忘了,今天无聊就顺手写了个,然后测试下,发现跟我记忆中的竟然有些出入,作为一个两年的开发,我感觉自己很失败啊. 父类pojo: public class Pojo ...
- java中的一些执行顺序,代码块,静态,构造,成员。。。。(转的)
Java初始化顺序(转来的) 1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入) 2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完 ...
- java中静态代码块初始化顺序
(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下, ...
- Java中,类与类,类中的代码执行顺序
代码的执行顺序如下: 1.一个类的静态代码块.构造代码块.构造方法的执行流程为: 静态代码块 > 构造代码块 > 构造方法 2.静态的内容是随着类的加载而加载,静态代码块的内容会优先执行 ...
- (转)java中静态代码块的用法 static用法详解
一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来 ...
- java中静态代码块的用法 static用法详解(转)
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...
- 【转】java中静态代码块的用法 static用法详解
原文网址:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html (一)java 静态代码块 静态方法区别一般情况下,如 ...
随机推荐
- HTTP Client使用总结
1.如果服务器使用HTTPS协议,使用HTTPClient的话,需要配以EasySSLProtocolSocketFactory 2.Tomcat对HTTP的Post和Get请求处理是不一样的.Spr ...
- dotnet core的下载地址 以及sdk和runtime的 version 简单说明
1. dotnet core 2.1 的下载地址 https://dotnet.microsoft.com/download/dotnet-core/2.1 2. dotnet core 2.2 的下 ...
- ubuntu更改分辨率
1. 输入:$cvt 1920 1080 2 输入: $xrandr 3 输入: $sudo xrandr --newmode "1920x1080_60.00" 173.00 1 ...
- Delphi2007卸载后无法再安装
Win7下卸载delphi2007后重新安装问题: 1.Delphi/C++ must be installed first 2.could not access network loacation/ ...
- 配合es5.8的使用,升级sb版本到2.X,遇到一个问题
问题:Failed to bind properties under 'spring.redis.jedis.pool.max-wait' to java.time.Duration: Propert ...
- linq 分组取各组最大值
static List<User> list1 = new List<User>() { new User(){id=1,name="张三"}, new U ...
- Hibernate基本应用01
一. Hibernate简介 1.1 Hibernate介绍 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全 ...
- Android GPS定位测试(附效果图)
今天因为工作需要,把以前编写的一个GPS测试程序拿出来重新修改了一下.这个程序说起来有些历史了,是我11年编写的,那时候学了Android开发没多久,算是一个实验性的作品.现在工作需要,重新拿出来修整 ...
- 对 static const char* const str[] = {“string”} 的理解
static const char* const str[] = {“string”} 静态常量型指针变量 static const char* 常量型变量 const str[] 这样修饰的作用为 ...
- 洛谷 P2587 [ZJOI2008]泡泡堂 解题报告
P2587 [ZJOI2008]泡泡堂 题目描述 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏 ...