本文主要记录JAVA中对象的初始化过程,包括实例变量的初始化和类变量的初始化以及 final 关键字对初始化的影响。另外,还讨论了由于继承原因,探讨了引用变量的编译时类型和运行时类型 一,实例变量的初始化 一共有三种方式对实例变量进行初始化: ①定义实例变量时指定初始值 ②非静态初始化块中对实例变量 ...
分类:
编程语言 时间:
2016-10-04 21:09:16
阅读次数:
340
对于实例变量而言,它属于Java对象本身,每次程序创建Java对象时都需要为实例变量分配内存空间,并执行初始化。 从程序运行的角度来看,每次创建Java对象都会为实例变量分配内存空间,并对实例变量执 行初始化。 程序可以在3个地方对实例变量执行初始化: .定义实例变量时指定初始值; .非静态初始化块 ...
分类:
编程语言 时间:
2016-09-24 11:55:06
阅读次数:
168
通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。 ...
分类:
其他好文 时间:
2016-09-20 18:01:14
阅读次数:
109
随笔- 40 文章- 0 评论- 1 <!--end: blogStats --> <!--end: navigator 博客导航栏 --> Java的初始化块、静态初始化块、构造函数的执行顺序及用途探究 Java与C++有一个不同之处在于,Java不但有构造函数,还有一个”初始化块“(Initia ...
分类:
编程语言 时间:
2016-09-09 00:30:45
阅读次数:
272
TJI读书笔记07-初始化 成员初始化 构造方法初始化 初始化块 初始化的顺序 成员初始化 java尽量去保证每个变量在使用前都会得到初始化. 对于方法局部变量,java不会自动初始化他们,如果没有显式的初始化,编译器会报错. 对于类的数据成员,java会自动初始化成一个”空”“的值.简单来说,这个... ...
分类:
其他好文 时间:
2016-09-05 23:34:29
阅读次数:
215
封装就是把对象的属性,行为组装成一个类,并对其内部细节加以隐藏. 一 组装类 public class 类名{ 初始化块 属性 构造方法 行为 } 1.属性 属性在定义时先要书写访问修饰符,确定外界是否有访问它的权限(一般都是private). 只能是变量和常量,可以是基础数据类型也可以是引用数据类 ...
分类:
其他好文 时间:
2016-08-28 12:21:20
阅读次数:
182
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:public class InitialOrderTest {// 静态变量public static String stati ...
分类:
编程语言 时间:
2016-08-14 07:19:12
阅读次数:
177
Java与C++有一个不同之处在于,Java不但有构造函数,还有一个”初始化块“(Initialization Block)的概念。下面探究一下它的执行顺序与可能的用途。 执行顺序 首先定义A, B, C三个类用作测试,其中B继承了A,C又继承了B,并分别给它们加上静态初始化块、非静态初始化块和构造 ...
分类:
编程语言 时间:
2016-07-24 17:58:03
阅读次数:
207
public static HelloWorld { string name; { name = "爱慕课"; } } 需要特别注意:静态初始化块只能在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。 程序运行时,静态初始化块首先被执行,然后执行普通初始化 ...
分类:
其他好文 时间:
2016-07-22 10:03:42
阅读次数:
128
public class A { public int number = 5; { number = 10; } public static void main(String[] args) { A a = new A(); System.out.println(a.number); }} 这段代码 ...
分类:
其他好文 时间:
2016-07-11 00:58:23
阅读次数:
117