java里初始化一个类的对象,通过初始化快或者构造方法进行数据赋值。与其相关的执行代码有这么几种: 静态初始化块 初始化块 构造方法 静态初始化块 静态初始化块只在类加载时执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。 非静态初始化块 非静态初始化块在每次初始化实例对象的时 ...
分类:
编程语言 时间:
2017-01-03 17:05:55
阅读次数:
156
1. 继承的概念: 继承在本职上是特殊——一般的关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法。 2. 继承中的初始化顺序: 从类的结构上而言,其内部可以有如下四种常见形态:属性(包括类属性和实例属性)、方法(包括类方法和实例方法)、构造器和初始化块(包括类的初始 ...
分类:
编程语言 时间:
2016-12-29 10:38:34
阅读次数:
151
当在静态初始化块中出现了异常的时候,JVM会抛出 java.lang.ExceptionInInitializerError异常。如果你了解Java中的静态变量,你会知道它们是在类加载的时候进行初始化的。如果在这个静态变量初始化的过程中出现了异常,那么就会抛出 java.lang.Exception ...
分类:
编程语言 时间:
2016-12-28 15:02:22
阅读次数:
195
用jdk提供的javap工具了解java编译器的机制。 1、javac Cat.java 2、javap -c Cat.class 3、当创建任何java对象时,程序总会先一次调用每个父类非静态初始化块、父类构造器(总是从Object开始)执行初始化,最后 才会调用本类的非静态初始化块、构造器执行初 ...
分类:
其他好文 时间:
2016-12-18 17:44:18
阅读次数:
194
对于静态变量、静态初始化块、变量、初始化块、构造器, 它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点: public class InitialOrderTest { // 静态变量 public static String s ...
分类:
编程语言 时间:
2016-12-02 18:42:55
阅读次数:
254
1.接口 1.接口只有抽象方法,它比抽象类还要抽象,接口是彻彻底底的抽象 2.接口是抽象方法和常量的属性集合 3.接口只能够包含抽象方法和常量,不能够有变量/初始化块/构造器 注意: 1.接口的修饰符只有两种:默认和public 2.接口内的变量会被设置为共有的静态的和最终的字段 例如:public ...
分类:
其他好文 时间:
2016-11-19 09:58:21
阅读次数:
99
1,总结Java字段初始化的规律。 Java初始化的地方有两个:初始化块和构造函数,其中初始化又分为实例初始化块和静态初始化块,实例初始化块没有关键字修饰,而静态初始化块由static修饰。 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面” 执行类的构造函数:类的初始 ...
分类:
其他好文 时间:
2016-11-03 23:16:31
阅读次数:
274
在java中,当我们new一个对象时,对象中的成员,初始化块以及构造方法的加载是有一定的顺序的,看下面一副图: 一、单类(无基类)下的初始化顺序: public class Parent { static String staticStr = "父类静态变量"; private String str ...
分类:
编程语言 时间:
2016-11-03 13:31:13
阅读次数:
280
1. 构造器的重载 2. 默认构造器 3. 对象初始化块 4. 静态初始化块 5. 实例域初始化 开始静态初始化块。。。结束静态初始化块开始对象初始化块。。。对象初始化开始前 id:-1结束对象初始化块对象初始化结束 id:5no paramter con0 Harry 50000.0 ...
分类:
编程语言 时间:
2016-10-30 16:07:41
阅读次数:
166