成员初始化 Java尽力保证:所有变量在使用前都能得到恰当的初始化。 对于方法的局部变量,Java会以编译时报错的形式贯彻这种保证,比如: 但是如果是类的数据成员,情况会有所不同。类的每个基本类型数据成员会保证一个默认初始值,通常为0,布尔型就是false,引用类型会为null。 指定初始化 (1 ...
分类:
编程语言 时间:
2017-01-05 21:33:56
阅读次数:
285
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
输出: 静态初始化只有在必要时进行。初始化顺序是静态对象然后非静态对象。 ...
分类:
其他好文 时间:
2016-11-22 23:38:17
阅读次数:
174
Java中数组初始化和OC其实是一样的,分为动态初始化和静态初始化, 动态初始化:指定长度,由系统给出初始化值 静态初始化:给出初始化值,由系统给出长度 在我们使用数组时最容易出现的就是数组越界问题,好了,下面来演示一下 这是一个二维数组,很明显,数组越界了,控制台中会打印如下信息: Excepti ...
分类:
编程语言 时间:
2016-11-16 13:58:16
阅读次数:
205
1静态初始化:这个值是多少就是多少,不能够改变 int[] arr = {1,2,3,4,5}; 2.动态初始化:不可变的数组 可变数组 》集合 ArrayList //这是一个指定的数组,但也可以不指定 //如果元素没有被赋值,默认以0来填充。 int[] arr = new int[10]; 3 ...
分类:
编程语言 时间:
2016-11-14 15:06:13
阅读次数:
124
package Study; public class TestArray02 { public static void main(String[] args){ //声明 int[] a; int b[]; //创建数组对象 a = new int[4]; b = new int[5]; //初始 ...
分类:
编程语言 时间:
2016-11-10 18:55:41
阅读次数:
152
1,总结Java字段初始化的规律。 Java初始化的地方有两个:初始化块和构造函数,其中初始化又分为实例初始化块和静态初始化块,实例初始化块没有关键字修饰,而静态初始化块由static修饰。 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面” 执行类的构造函数:类的初始 ...
分类:
其他好文 时间:
2016-11-03 23:16:31
阅读次数:
274