Java面试题之类的静态代码块和静态属性等的加载顺序
如以下面试题:
/**
* @author hjs
* @date 2019/3/62:41
* @Dec
*/
public class B {
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println("父类构造块");
}
static {
System.out.println("父类静态块");
}
}
/**
* @author hjs
* @date 2019/3/62:35
* @Dec
*/
public class A extends B {
public static A t1 = new A();
public static A t2 = new A();
{
System.out.println("构造块");
}
static {
System.out.println("静态块");
}
public static void main(String[] args) {
A t = new A();
}
}
输出结果:
父类构造块、父类构造块、父类静态块、父类构造块、构造块、父类构造块、构造块、静态块、父类构造块、构造块 B1初始化的:父类构造块;
B2初始化的:父类构造块、父类静态块
A1初始化的:父类构造块、构造块
A2初始化的:父类构造块、构造块、静态块
main函数创建A时打印的:父类构造块、构造块
结论:父类静态属性、父类静态代码块、子类静态属性、子类静态代码块、代码块
Java面试题之类的静态代码块和静态属性等的加载顺序的更多相关文章
- Java的静态代码块是否会在类被加载时自动执行?
JAVA静态代码块会在类被加载时自动执行? 一.先看Java静态方法,静态变量 http://www.cnblogs.com/winterfells/p/7906078.html 静态代码块 在类中, ...
- java代码块,静态代码块,静态变量,构造方法执行顺序
一个类中执行顺序: 静态变量静态代码块代码块构造方法 子类和父类执行顺序: 父类静态变量父类静态代码块子类静态变量子类静态代码块父类代码块父类构造方法子类代码块子类构造方法 直接看代码,一目了然. p ...
- Java非静态代码块和静态代码块
类中存在两种特殊的代码块,即非静态代码块和静态代码块,前者是直接由 { } 括起来的代码,而后者是由 static{ } 括起来的代码. 非静态代码块在类初始化创建实例时,将会被提取到类的构造器中执行 ...
- 静态代码块&非静态代码块&构造函数
总结:静态代码块总是最先执行.非静态代码块跟非静态方法一样,跟对象有关.只不过非静态代码块在构造函数之前执行.父类非静态代码块.构造函数执行完毕后(相当于父类对象初始化完成), 才开始执行子类的非静态 ...
- java静态类、静态方法、静态代码块,静态变量及实例方法,实例变量初始化顺序及内存管理,机制
1.当一个类被第一次使用时,它需要被类加载器加载,而加载过程涉及以下两点: (1)在加载一个类时,如果它的父类还未被加载,那么其父类必须先被加载: (2)当类加载到内存之后,按照在代码中的出现顺序执行 ...
- java中的静态代码块、构造代码块、构造方法
运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System. ...
- 黑马程序员——JAVA基础之主函数main和静态static,静态代码块
------- android培训.java培训.期待与您交流! ---------- 主函数:是一个特殊的函数.作为程序的入口,可以被jvm调用. 主函数的定义: public:代表着该函数访问权限 ...
- java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包
Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...
- java的静态代码块和类变量的隐式覆盖
静态代码块特点:随着类的加载执行一次,且仅会执行一次 作用:初始化类中的static修饰的变量(static修饰的变量称为类变量.类变量和静态代码块差不多,类变量仅会被初始化一次) 一.静态代码块写法 ...
随机推荐
- kali安装ssh服务
一. kali安装ssh服务 1.修改源 root@DGG:~# vi /etc/apt/sources.list deb http://http.kali.org/kali kali-rolling ...
- Eloquent: 修改器
感觉好长时间没写东西了,一方面主要是自己的角色发生了变化,每天要面对各种各样的事情和突发事件,不能再有一个完整的长时间让自己静下来写代码,或者写文章. 另一方面现在公司技术栈不再停留在只有 Larav ...
- webstorm报错Unescaped xml character解决方案1
当idea认为你的书写格式不适合的时候便会报出Unescaped xml character提示,但不影响运行. 若想禁掉这个提示,可以尝试修改文档类型为:<!DOCTYPE html>
- Git-Git分支
代码管理之殇 分支是代码管理的利器.如果没有有效的分支管理,代码管理就适应不了复杂的开发过程和项目的需要.在实际的项目实践中,单一分支的单线开发模式还远远不够,因为: 成功的软件项目大多要经过多个开发 ...
- DNS域名解析服务(bind)
DNS(Domain Name System,域名系统): 用于管理和解析域名与IP地址对应关系的技术. 简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配(或者说具有映射关系)的I ...
- 11,flask之--WTForms
WTForms是什么? 相当于django的ModelForm. 在网页中,为了和用户进行信息交互总是不得不出现一些表单.flask设计了WTForm表单库来使flask可以更加简便地管理操作表单数据 ...
- 使用 jQuery Mobile 与 HTML5 开发 Web App 系列文章目录
使用 jQuery Mobile 与 HTML5 开发 Web App 系列文章目录 时间:2012年9月20日 分类:JavaScript 标签:HTML5‚ jQuery Mobile‚ Web ...
- MySQL添加和删除字段
查询表的字段类型: mysql> desc t_template_title; +----------------+--------------+------+-----+---------+- ...
- Cannot create a secure XMLInputFactory --CXF调用出错
在调用方法前加上下面三句即可调用成功: Properties props = System.getProperties(); props.setProperty("org.apache.cx ...
- ASP.NET Core 2.1 源码学习之 Options[1]:Configure 【转】
原文链接:https://www.cnblogs.com/RainingNight/p/strongly-typed-options-configure-in-asp-net-core.html 配置 ...