类加载器

以下是一道AK的笔试题,可以很好的理解类加载顺序:

public class ParentTest {
static {
System.out.println("parent1");
} {
System.out.println("parent2");
} ParentTest() {
System.out.println("parent3");
} public static void main(String[] args) {
ChildTest obj = new ChildTest();
}
} class ChildTest extends ParentTest {
static {
System.out.println("child1");
} {
System.out.println("child2");
} ChildTest() {
System.out.println("child3");
}
}

类加载时就执行静态初始化块,如果有父类的话,先加载父类(只执行父类的静态代码块,其他非静态代码块、静态方法以及非静态方法不执行)。加载完成后,调用构造器的话,会先执行非静态初始化块,再执行构造方法。当然,如果有父类,则先执行父类的非静态初始化块和构造方法,再执行子类的非静态代码块和构造方法。如果不调用构造器,而是直接调用静态方法的话,则非静态初始化块及父类的非静态初始化块不会执行,构造方法和父类的构造方法也不会执行。每个类的静态初始化块都只会被执行一次,在类加载的时候执行。而非静态初始化块可能会执行多次,每调用一次构造器或者子类的构造器,都会执行一次。

所有,上面打印的结果是:

parent1

child1

parent2

parent3

child2

child3

再来一个强化一下:

public class ClassB extends ClassA {

    static {
System.out.println("子类静态代码块 1");
} static {
System.out.println("子类静态代码块 2");
} {
System.out.println("子类非静态代码块1");
} {
System.out.println("子类非静态代码块2");
} public ClassB() {
System.out.println("子类构造函数");
} public static void main(String[] args) {
System.out.println("....主方法开始....");
new ClassB();
System.out.println("************");
new ClassB();
System.out.println("....主方法结束....");
} } class ClassA { static {
System.out.println("父类静态代码块 1");
} static {
System.out.println("父类静态代码块 2");
} {
System.out.println("父类非静态代码块1");
} {
System.out.println("父类非静态代码块2");
} public ClassA() {
System.out.println("父类构造函数");
} }

打印什么?这里不再写出来,每次复习的时候直接做这个题目,再跟答案对比,在看文中解释,对理解记忆有帮助。

es xxx_by_query的更多相关文章

  1. 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)

    0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...

  2. OpenGL ES 3.0: 图元重启(Primitive restart)

    [TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...

  3. 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路

    最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...

  4. ES 学习总结

    ES 总结: es 是基于lucene的, 是java 实现的, 很多概念和lucene是相同的 索引-- 对应数据库的表,mongoDB中的集合 文档,由字段组成, 一个字段可以出现多次. 字段,其 ...

  5. ES性能测试

    测试背景   因为ES(ElasticSearch)前段时间查询效率有点慢,技术小组对索引做了一些改动,因此需要测试一下修改后的查询效率,跟之前的结果做一下对比,所以有了这次测试.   需求简述   ...

  6. [翻译]ES 提案: global

    Jordan Harband 的 ECMAScript 提案“global”现在处于第三阶段.该提案提供了一种新的用于访问全局对象的标准方式. 全局对象的引用 下面是常用的几种引用全局对象的方式: 全 ...

  7. ElasticSearch+ElasticGeo+Geoserver发布ES地理数据

    依赖GeoserverElasticSearchElasticGeo部署部署ElasticGeo使用创建ES数据源并发布发布 依赖 Geoserver 环境搭建参考: ElasticSearch 环境 ...

  8. opengl es中不同的绘制方式

    opengl es中不同的绘制方式 转载请保留出处:http://xiaxveliang.blog.163.com/blog/static/297080342013467344263/ 1. GL_P ...

  9. es查询命令备份(只需要网页9200/_plugin/head/就可以访问)

    本文只是写一些常用es命令,这里不用任何客户端,只用 9200/_plugin/head/ 那个端口网页就可以,然后是复合查询. 注意es其实一个idnex只能有一个type,如果一个index做了多 ...

随机推荐

  1. gogland golang 颜色&字体 colors&font 配置文件

    <scheme name="Ya" version="142" parent_scheme="Darcula"> <opt ...

  2. 使用VMware克隆Linux系统

    最近在学习使用solr云技术,因为是用来学习操作,因此需要在一台虚拟机上,安装多台LinuxOS. 但是又想偷懒,不想每安装一个LinuxOS,就重新配置Linux环境,所以使用克隆,只需安装好一个模 ...

  3. Java概述、环境变量、注释、关键字、标识符、常量

    Java语言的特点        有很多小特点,重点有两个开源,跨平台 Java语言是跨平台的 Java语言的平台        JavaSE        JavaME--Android       ...

  4. 使用JavaScript获取CSS伪元素属性

    我们可以通过DOM元素的 style 属性获取基本的CSS样式值, 但怎么获取CSS伪元素属性呢? 如下 // 获取 .element:before 的 color 值 var color = win ...

  5. NSArray去除重复元素

    直接上代码吧! 1.可以创建一个新的数组,对需要去除重复的数组进行遍历,如果新数组不包含就数组,那么添加元素,如果包含就不添加. NSMutableArray *array = [NSMutableA ...

  6. sersync服务搭建

    前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...

  7. .net 序列化反序列化

    .net 序列化创建对象的深拷贝 public static object DeepClone(object original) { using (MemoryStream stream = new ...

  8. Android-广播概念

    Android中的消息机制 1.Handler+Message消息机制,是用于子线程与主线程的通讯: 2.广播+广播接收者也是消息机制,是重量级别的,四大组件之一,需要激活组件,是用于组件和组件之间通 ...

  9. Ubuntu 网关服务器配置

    1.设置Linux内核支持ip数据包的转发 echo "1" > /proc/sys/net/ipv4/ip_forward or vi /etc/sysctl.conf   ...

  10. Autofac的简单使用

    今天记录一下学习Autofac的过程. 之前对IoC与DI一直很迷糊,今天研究了前辈们的文章后,才对IoC和DI有了一个初步的了解.感谢前辈们的无私奉献! 文章地址: 依赖注入和控制反转的理解,写的太 ...