(所谓的初始化方法init()是另一回事, 在构造方法之后执行, 注意不要混淆) 在Java中,有两种初始化块:静态初始化块和非静态初始化块。它们都是定义在类中,用大括号{}括起来,静态代码块在大括号外还要加上static关键字。非静态初始化块(构造代码块):作用:给对象进行初始化。对象一建立就运行 ...
分类:
编程语言 时间:
2017-03-07 14:07:30
阅读次数:
190
普通初始化块 一个类里可以有多个初始化块,相同类型的初始化块之间有顺序:前面定义的先执行,后面定义的后执行。 初始化块的修饰符只能是static,使用static修饰的初始化块被称为静态初始化块。 普通初始化块、声明实例属性指定的默认值都可认为是对象的初始化代码,执行顺序与声明顺序相同。 当Java ...
分类:
编程语言 时间:
2017-01-19 00:52:04
阅读次数:
179
final可以修饰成员变量,也可以修饰局部变量、形参。final变量一旦获得初始值之后,final的变量就不能被重新赋值。 成员变量是随类初始化或对象初始化而初始化的,当执行静态初始化块时候可以对类属性进行赋初始值,当执行普通初始化块或者构造器的时候可以对实例属性赋初始值。因此成员变量的初始值可以在 ...
分类:
Web程序 时间:
2017-01-17 07:54:40
阅读次数:
285
1.初始化块分静态和动态块 静态块只能初始化静态量,动态块可以初始化静态和动态量,静态初始化块先于动态初始化块 2.父类的默认构造器>子类的默认构造器,子类的默认构造器>父类的非默认构造器 3.父类的静态初始化块>子类的静态初始化块>父类的动态初始化块执行>子类的动态初始化块 4.当重写父类的构造函 ...
分类:
其他好文 时间:
2017-01-14 23:15:27
阅读次数:
204
java里初始化一个类的对象,通过初始化快或者构造方法进行数据赋值。与其相关的执行代码有这么几种: 静态初始化块 初始化块 构造方法 静态初始化块 静态初始化块只在类加载时执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。 非静态初始化块 非静态初始化块在每次初始化实例对象的时 ...
分类:
编程语言 时间:
2017-01-03 17:05:55
阅读次数:
156
当在静态初始化块中出现了异常的时候,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,总结Java字段初始化的规律。 Java初始化的地方有两个:初始化块和构造函数,其中初始化又分为实例初始化块和静态初始化块,实例初始化块没有关键字修饰,而静态初始化块由static修饰。 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面” 执行类的构造函数:类的初始 ...
分类:
其他好文 时间:
2016-11-03 23:16:31
阅读次数:
274
1. 构造器的重载 2. 默认构造器 3. 对象初始化块 4. 静态初始化块 5. 实例域初始化 开始静态初始化块。。。结束静态初始化块开始对象初始化块。。。对象初始化开始前 id:-1结束对象初始化块对象初始化结束 id:5no paramter con0 Harry 50000.0 ...
分类:
编程语言 时间:
2016-10-30 16:07:41
阅读次数:
166