1、代码块的概述和分类 A:代码块概述 在Java中,使用{}括起来的代码被称为代码块。 B:代码块分类 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。 C:常见代码块的应用 a:局部代码块 在方法中出现;限定变量生命周期,及早释放,提高内存利用率 b ...
分类:
编程语言 时间:
2018-07-18 20:43:19
阅读次数:
158
使用场景: 在java程序中,当实例化对象时,对象的所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后, 才会调用对象所在类的构造函数创建对象。 初始化的原则: (1)静态对象优先于非静态对象初始化,静态对象只能初始化一次,但非静态对象可以初始化多次。 (2)超类优先于派生类初始化。 ...
分类:
编程语言 时间:
2018-07-16 23:10:24
阅读次数:
188
final和static关键字 final关键字 1.final关键字在单线程中的特点: 1)final修饰的静态成员:必须在进行显示初始化或静态代码块赋值,并且仅能赋值一次。 2)final修饰的类成员变量,可以在三个地方进行赋值:显示初始化、构造代码块和构造方法,并且仅能赋值一次。 3)fina ...
分类:
编程语言 时间:
2018-07-15 19:31:42
阅读次数:
136
4.1 基本概念 4.1.1 java 语言有点 4.1.2 Java 解释型语言 c/c++ 编译型语言 4.1.3 main方法 可以重名但类型等不能重复 4.1.5 static 初始化顺序 : 父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类 ...
分类:
编程语言 时间:
2018-07-15 12:06:34
阅读次数:
182
class B extends A ,然后A类也就是父类里面有静态代码块,普通代码块,静态方法,静态成员变量,普通成员变量,普通方法。子类也是这样,然后继承之后,关于程序打印输出的结果。涉及到Java类的各种成员的初始化顺序。经测试,得到如下结论:1.父类【静态成员】和【静态代码块】,按在代码中出现的顺序依次执行。2.子类【静态成员】和【静态代码块】,按在代码中出现的顺序依次执行。3.父类的【普通
分类:
编程语言 时间:
2018-07-11 16:00:59
阅读次数:
164
一、java对象初始化过程 第一步,加载该类,一个java对象在初始化前会进行类加载,在JVM中生成Class对象。加载一个类会进行如下操作,下面给出递归描述。 如果该类有父类,则先加载其父类。关于Class对象详见反射 点击这里 i 初始化该类静态成员 ii 执行该类静态代码块 第二步,创建对象, ...
分类:
编程语言 时间:
2018-07-06 23:23:50
阅读次数:
227
父类: 子类: 运行结果: 1.加载父类静态代码块 Demo4静态代码块执行了 2.加载子类静态代码块 Demo5静态代码块执行了 3.执行Demo5 ps = new Demo5(); a.先执行父类构造代码块 Demo4构造代码块执行了 b.在执行父类构造方法 Demo4构造方法执行了 c.执行 ...
分类:
其他好文 时间:
2018-07-04 19:33:41
阅读次数:
156
在开始本博客写作之前请大家看一道经典的java面试题 public class StaticTest{ 对于这个执行结果是不是有些让你大跌眼镜呢?那么现在本菜鸟就来分析分析:对于静态成员变量和静态代码块而言,初始化的顺序是按照出现顺序;当有父类静态代码块或者父类静态成员变量的时候,不管出现顺序如何, ...
分类:
编程语言 时间:
2018-07-03 18:14:15
阅读次数:
156
jvm在为一个类构造对象时: 1、首先执行静态代码,如果多个静态代码,顺序执行 2、然后执行普通代码 3、然后执行构造方法 只要类再被jvm加载时,静态代码块就会执行 例如 order.什么 ...
分类:
其他好文 时间:
2018-06-29 15:45:11
阅读次数:
151
工作机制: 装载:查找和导入class文件 链接:执行校验、准备和解析步骤,其中解析步骤是可以选择的 (1)校验:检查载入class文件的可读性 (2)准备:给类的静态变量分配存储空间 (3)解析:将符号引用转换成直接饮用 初始化:对类的静态变量、静态代码块执行初始化工作 jvm在运行时会产生3个C ...
分类:
其他好文 时间:
2018-06-23 13:16:36
阅读次数:
141