一个类在被加载到内存之前要经过加载、验证、准备等过程。经过这些过程之后,虚拟机才会从方法区将代表类的运行时数据结构转换为内存中的Class。
我们这节内容的重点在于一个类是如何被加载的,所以我们从类...
分类:
其他好文 时间:
2016-11-25 17:50:34
阅读次数:
154
static关键字 1.static关键字的特点 a:随着类的加载而加载 b:优先于对象存在 (还没创建对象) c:被类的所有对象共享(定义为静态的依据) 如果某个成员变量是被所有对象共享的,那么它就应该定义为静态的。 d:可以通过类名调用 其实它本身也可以通过对象名调用。推荐使用类名调用。 Per... ...
分类:
其他好文 时间:
2016-11-23 07:51:38
阅读次数:
188
一、作用:是一个修饰符,用于修饰成员(成员变量,成员方法)1、被static 修饰后的成员变量只有一份2、当成员被static修饰之后,多了一种访问方式,除了可以被对象调用之外还可以被类名直接调用(类名.静态成员) 二、static的特点:1、随着类的加载而被加载2、优先于对象的存在3、被所有的对象 ...
分类:
其他好文 时间:
2016-11-16 11:48:43
阅读次数:
141
JVM加载类的过程: 1)JVM中类的整个生命周期: 加载=》验证=》准备=》解析=》初始化=》使用=》卸载 1.1、加载 类的加载阶段,主要是获取定义此类的二进制字节流,并将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构,最后在Java堆中生成一个代表这个类的java.lang.Cla ...
分类:
其他好文 时间:
2016-11-16 01:59:20
阅读次数:
256
类的加载: 类的初始化: 类什么时候才被初始化:1)创建类的实例,也就是new一个对象2)访问某个类或接口的静态变量,或者对该静态变量赋值3)调用类的静态方法4)反射(Class.forName("com.lyj.load"))5)初始化一个类的子类(会首先初始化子类的父类)6)JVM启动时标明的启 ...
分类:
编程语言 时间:
2016-11-14 02:26:48
阅读次数:
214
静态加载类,是编译时刻加载 动态加载类,是运行时刻加载 new创建对象:是静态加载类,在编译时刻就需要加载所有的可能使用到的类。有一个类有问题(如不存在),都不能通过编译,会报错。 Class.forName(类的全称):通过动态加载类,用到一个类时,才进行加载。 功能性的类建议尽量使用动态加载,并 ...
分类:
编程语言 时间:
2016-11-08 17:00:28
阅读次数:
128
今天主要是学习下static静态变量的了解 ,主要是用于多个对象相同的成员变量,用以节省空间。它是随着类的加载而加载可以是方法也可以是对象。直接通过类名调用。比如main方法就是,可以直接调用。 main方法是静态的 public:权限最大 static:不用创建对象调用 void:返回值给jvm没 ...
分类:
编程语言 时间:
2016-11-08 01:11:58
阅读次数:
269
Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading)、验证(Verification)、准备(Pr ...
分类:
编程语言 时间:
2016-10-29 18:35:24
阅读次数:
248
1、反射(类的加载概述和加载时机) A:类的加载概述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 加载 就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象。 连接 验证 是否有 ...
分类:
编程语言 时间:
2016-10-28 07:48:27
阅读次数:
228
本章重点介绍java.lang.reflect包下的接口和类 当程序使用某个类时,如果该类还没有被加载到内存中,那么系统会通过加载,连接,初始化三个步骤来对该类进行初始化. 类的加载时指将类的class文件读入内存,并为之创建一个java.lang.class对象,也就是说,当程序中使用任何类时,系 ...
分类:
编程语言 时间:
2016-10-19 20:10:57
阅读次数:
286