java,实例初始化块,静态初始化块,clone方法
来源:互联网 发布:斗鱼主播用的直播软件 编辑:程序博客网 时间:2024/06/05 20:05
今天无聊,看了一下java语言基础知识,对 实例初始化块,静态初始化块 的执行顺便,有了一点了解,便记下来,方便以后查阅。
在一个类定义中,初始化块,就是一块用 { } 大括号括起来的代码段。但“实例初始化块”只是单单的 大括号,当每次创建一个类的实例时,在调用构造方法前,会先执行这段“实例初始化块”,看到这,应该大概明白“实例初始化块”的主要作用了吧?当你在一个类的不同构造方法内,有许多相同的代码段,那么,这些代码就可以单独提取出来,放在一个“实例初始化块里”,那么,每次创建一个对象时,就都会执行一次那代码块。
而相对于“静态初始化块”,其只是在 大括号前面加了个 static,形如 : static{ //--code },但在静态初始化块里,只能允许访问所在类的静态成员(包括方法),当然,也可以在初始化块里声明局部变量(但不能是static类型的)。而静态初始化块的作用就是当JVM在装载类的,你想让它做一些事情,那么,就可以用静态初始化块。
现在说重点:这几者的执行顺序:
(JVM在装载类时)先装载类的静态成员,再执行静态初始化块(同样,当一个类有继承自某类时,则会先装载该父类,那么,父类的装载或执行顺序,也都如句子所述)。
(在创建类的实例时)先执行实例初始化块,再执行构造方法;但对于一棵继承树中,会先调用父类的构造方法,那么其执行顺序也如句子所述。
需要注意的是:
1.当你调用了一个对象的clone方法,结果是:不会再执行初始化块,只会执行构造方法。
2.当一个类有多个初始化块时,其执行的顺序是从上到下执行。
本文出自 “术业无止境” 博客,请务必保留此出处http://1877998.blog.51cto.com/1867998/473728
- java,实例初始化块,静态初始化块,clone方法
- java静态初始化块、实例初始化块
- Java 构造方法,初始化块,静态初始化块
- java中的构造方法,初始化块,静态初始化块
- Java静态初始化块
- Java 静态初始化块
- java 静态初始化块
- java 静态初始化块
- Java——初始化块,初始化块与构造方法,静态初始化块
- Java静态块(静态初始化,实例初始化和构造方法)总结
- 静态初始化块和实例化块
- 初始化块/静态初始化块
- Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造方法)
- 静态初始化块,初始化块,构造函数,静态方法
- java中的初始化块和静态块
- java 多态 静态初始化块
- java静态块(初始化)
- java之静态初始化块
- Java网络编程-java高级编程
- 做产品的原则
- 感慨
- java 通过管道 通信
- 表单可以转码
- java,实例初始化块,静态初始化块,clone方法
- ASP.NET MVC 已经删除edmx了却提示冲突解决办法
- Android代码布局,baseadapter很需要的哦!
- 黑马程序员-程序异常
- 托盘功能的实现(MFC)
- SQL---DDL---删除表DROP TABLE语句
- 将带头结点的有序单链表A和B合并成一个新的有序表C……
- 提示小窗体方法
- 书买了,估计这个星期就到了