Java中初始化块详解
在Java中,有两种初始化块:静态初始化块和非静态初始化块.
静态初始化块:使用static定义,当类装载到系统时执行一次.若在静态初始化块中想初始化变量,那仅能初始化类变量,即static修饰的数据成员.
非静态初始化块:在每个对象生成时都会被执行一次,可以初始化类的实例变量.
非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被运行.
括号里的是初始化块,这里面的代码在创建Java对象时执行,而且在构造器之前执行!
其实初始化块就是构造器的补充,初始化块是不能接收任何参数的,定义的一些所有对象共有的属性、方法等内容时就可以用初始化块了初始化!!
好处是可以提高初始化块的复用,提高整个应用的可维护性。--《疯狂java讲义》
package com.tiandinet.studyjava; public class TestInitiateBlock { { System.out.println("In non-static initialization block!"); }; static { System.out.println("In static initialization block!"); }; public TestInitiateBlock() { System.out.println("In Constructor1!"); } public void show() { System.out.println("In show()!"); } /** * @param args */ public static void main(String[] args) { TestInitiateBlock ti = new TestInitiateBlock(); ti.show(); } }
运行结果:
In static initialization block! In non-static initialization block! In Constructor1! In show()!
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
本文向大家介绍AngularJS 模块化详解及实例代码,包括了AngularJS 模块化详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 AngularJS有几大特性,比如: 1 MVC 2 模块化 3 指令系统 4 双向数据绑定 那么本篇就来看看AngularJS的模块化。 首先先说一下为什么要实现模块化: 1 增加了模块的可重用性 2 通过定义模块,实现加载顺
本文向大家介绍java对象初始化代码详解,包括了java对象初始化代码详解的使用技巧和注意事项,需要的朋友参考一下 本文主要记录JAVA中对象的初始化过程,包括实例变量的初始化和类变量的初始化以及final关键字对初始化的影响。另外,还讨论了由于继承原因,探讨了引用变量的编译时类型和运行时类型 一,实例变量的初始化 这里首先介绍下创建对象的过程: 类型为Dog的一个对象首次创建时,或者Dog类的s
本文向大家介绍C++ 静态成员的类内初始化详解及实例代码,包括了C++ 静态成员的类内初始化详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 C++ 静态成员的类内初始化详解及实例代码 一般来说,关于C++类静态成员的初始化,并不会让人感到难以理解,但是提到C++ 静态成员的"类内初始化"那就容易迷糊了。 我们来看如下代码: 我们需要判断上面的静态数据成员的声明和定义有没有错误,并解释原因。
本文向大家介绍LintCode 堆化详解及实例代码,包括了LintCode 堆化详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 LintCode 堆化详解及实例代码 给出一个整数数组,堆化操作就是把它变成一个最小堆数组。 对于堆数组A,A[0]是堆的根,并对于每个A[i],A [i * 2 + 1]是A[i]的左儿子并且A[i * 2 + 2]是A[i]的右儿子。 样例 给出 [3,2,1
本文向大家介绍Java Annotation详解及实例代码,包括了Java Annotation详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 一、Annotation简介 从Java1.5开始,Java增加了元数据(MetaData)的支持,也就是Annotation(注释); Annotation能被用来为程序元素(类、方法、成员变量等)设置元数据; Annotation不能影响程序代
本文向大家介绍java HashMap详解及实例代码,包括了java HashMap详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 java HashMap Map集合的遍历 方式1,根据键查询值 获取所有键的集合 遍历键的集合,获取每一个键 根据键,查询值 方式2,根据键值对的对象查询键和值 获取所有键值对的对象的集合 遍历键值对的对象的集合,获取到每一个键值对的对象 根据键值对的对象