类和接口在初始化化时,处理继承层级的方法不一样. 类继承的初始化:通过引用 static 字段,触发某个类的初始化,则声明该字段的类,以及该类的父类被初始化. 接口继承的初始化:通过引用 static 字段,触发某个接口的初始化,则声明该字段的接口会被初始化,但该接口的父接口不会被初始化. 想了解其他触发类初始化的方法,可参看另一篇博文 类的初始化步骤 . 注意一点,接口字段全部隐式地被修饰为 public, static, final .因此,所有的接口字段实际上都是 static 的,无论有…
先看一道Java面试题: public class Baset { private String baseName = "base"; // 构造方法 public Baset() { callName(); } // 成员方法 public void callName() { // TODO Auto-generated method stub System.out.println("basename:" + baseName); } //静态内部类 static…
1.什么是继承 子类继承父类就是对父类的扩展,继承时会自动拥有父类所拥有的处private之外的所有成员作用:增加代码复用语法格式: class 子类名 extends 父类名{…………}第9章 Java类的三大特性之一:继承例子: //测试类,创建子类对象,可以直接调用属性和方法 public class testDog { public static void main(String[] args) { Dog dog = new Dog(); dog.age=10; dog.name="旺…
父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺序 前言: 普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”静态代码块:在java中使用static关键字声明的代码块.静态块用于初始化类,为类的属性初始化.每个静态代码块只会执行一次.由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行.如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行".注意…
要创建一个EJB,必须要至少编写哪些Java类和接口? A. 定义远程(或业务)接口 B. 定义本地接口 C. 定义Bean接口 D. 编写Bean的实现 解答:ABC…
面试的时候,经常会遇到这样的笔试题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和静态块,它们只包含一些简单的输出字符串到控制台的代码,然后让我们写出正确的输出结果.这实际上是在考察我们对于类的初始化知识的了解. 首先,我们先看看下面的代码,这就是很经典的考察方式. public class InitField { public static void main(String[] args) { SuperInitField p = new SuperInitField();…
Java虚拟机通过装载.连接.初始化来使得一个Java类型可以被Java程序所使用,如下图所示,其中连接过程又分为验证.准备.解析三个部分.其中部分类的解析过程可以推迟到程序真正使用其某个符号引用时再去解析.   解析过程可以推迟到类的初始化之后再进行,但这是有条件的,Java虚拟机必须在每个类或接口主动使用时进行初始化. 以下为主动使用的情况:  (1).(无论直接通过new创建出来的,还是通过反射.克隆.序列化创建的)创建某个类新的实例  (2).使用某个类的静态方法  (3).访问某个类或…
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见. 本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后,对 JVM 执行过程的关键点进行全面解析,并在文中穿插入了相关 JVM 规范和 JVM 的部分内部理论知识,以理论与实际结合的方式介绍对象初始化和类初始化之间的协作以及可能存在的…
一般类,抽象类,接口的使用场景: 类;共同的特征和行为的抽取和封装 接口:标准,规范(功能的扩展)         需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口   内部类:   1.成员内部类: 该类与外部类的属性和方法平级 Outer outer =new Outer(); outer.show(); //创建内部类的实例 Outer.Inner inner=outer.new Inner(); //实例.new方法 inner.showInner(); 创建成员内部…
原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-clobj-init/index.html 由一个单态模式引出的问题谈起 类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见. 本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后,…