上面代码输出什么? 答案是 null 分析: 类的加载顺序。 (1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法) (2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 ) (3) 父类非静态代码块( 包括非静态初始化块,非静态属性 ) (4) 父类构造函数 (5) ...
分类:
编程语言 时间:
2018-08-01 00:23:37
阅读次数:
174
一、类与类加载器 允许类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作可以让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远远不限于类加载阶段。对于任意一个类,都需要由加载 ...
分类:
其他好文 时间:
2018-07-29 15:14:54
阅读次数:
155
/* * static 静态的 * static修饰的成员变量的特点 * 1.static修饰的成员变量是该类的所有对象共享 * 2.static修饰的成员变量是随着类的加载就在静态区中开辟内存了,所以有限与非静态成员开辟内存 * 3.static修饰的成员变量可以通过类名直接访问 * 静态成员变量 ...
分类:
其他好文 时间:
2018-07-27 10:12:50
阅读次数:
120
jvm先找main函数,加载Demo34类 加载Car类,实例化对象进堆,成员变量都在堆中执行。类中的函数依旧在占中运行,遵循先入后出的原则,执行结束立即撤出栈中 jvm先找main函数,加载Demo34类 加载Car类,实例化对象进堆,成员变量都在堆中执行。类中的函数依旧在占中运行,遵循先入后出的 ...
分类:
其他好文 时间:
2018-07-27 10:11:16
阅读次数:
131
static关键字 java中针对多个对象有共同的成员变量值得时候,就提供了static关键字来修饰。 (1)静态的意思。可以修饰成员变量和成员方法。 (2)静态的特点: A:随着类的加载而加载 B:优先与对象存在 C:被类的所有对象共享 这其实也是我们判断该不该使用静态的依据。 D:可以通过类名调 ...
分类:
其他好文 时间:
2018-07-26 11:38:00
阅读次数:
119
关于反射: 1.需要了解jvm类的加载机制(java高级部分会详细介绍) 2.反射的API其实只要多看看API和源码,很容易就懂了。 下面是代码,简单讲解反射的使用: ...
分类:
编程语言 时间:
2018-07-25 20:02:05
阅读次数:
148
要了解类加载器先要了解类的加载 一、类的加载(类的加载概述) 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 1、加载 就是指将class文件读入内存,并为之创建一个Class对象。 任何类被使用时系统都会建立一个Class对象。 其中 ...
分类:
编程语言 时间:
2018-07-11 12:38:52
阅读次数:
141
27.01_反射(类的加载概述和加载时机) A:类的加载概述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 加载 就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象。 连接 验证 ...
分类:
编程语言 时间:
2018-07-07 17:56:51
阅读次数:
173
当虚拟机遇到一条new 指令时,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且这个符号引用代表类的是否已加载、解析和初始化过。如果没有必须执行类的加载过程。 在类加载检查过后,接下来虚拟机将为新生对象分配内存。对象所需内存大小在类加载完成后便可完全确定,为对象分配空间的任务等同 ...
分类:
编程语言 时间:
2018-07-06 20:24:06
阅读次数:
165
static关键字的特点 a:随着类的加载而加载 b:优先于对象存在 c:被类的所有对象共享 d:可以通过类名调用 static的注意事项 a:在静态方法中是没有this关键字的 如何理解呢? 静态是随着类的加载而加载,this是随着对象的创建而存在。 静态比对象先存在。 b:静态方法只能访问静态的 ...
分类:
其他好文 时间:
2018-06-29 14:07:04
阅读次数:
132