JVM(三) 类的加载、连接与初始化
来源:互联网 发布:淘宝代销下单好吗 编辑:程序博客网 时间:2024/06/04 19:37
1、加载:查找并加载类的二进制数据
2、连接:
*验证:确保被记载的类的正确性
*准备:为类的静态变量分配内存,并将其初始化为默认值
*解析:把类中的符号引用转换为直接引用
分析一下:
public class Test{ private static int a = 3;}
3、初始化:为类的静态变量赋予正确的初始值
大家误以为3是直接赋值给a的,其实不然;首先在连接的准备阶段,a被赋值为0,因为int型的默认值为0。在初始化的时候才将3赋值给a.
在第一遍博肯《JVM(一) 一个小程序吸引了我》拓展到关于Java程序对类的使用方式,这里再回顾一下:
Java程序对类的使用方式可分为两种:
主动使用和被动使用
所有的Java虚拟机实现必须在每个类或接口被Java程序"首次主动使用"时才初始化他们。
主动使用有六种:
1、创建类的实例
例:new Test();
2、访问某个类或接口的静态变量,或者对该静态变量赋值
例:int b=Test.a;
Test.a=b;
3、调用类的静态方法
例:Test.doSomething();
4、反射
例:Class.forName("come.tgb.Test");
5、初始化一个类的子类
例:class Parent{}
class child extends Parent
{public static int a =3;}
Child.a=4;
6、Java虚拟机启动时被标明为启动类的类
例:Test.java可能被编译成多个类文件,Test.class, Parent.class, Child.class,最终运行java Test,那么Test.class就是启动类。
除了以上6种情况,其他使用Java类的方式都被看看作是对类的被动使用,都不会导致类的初始化。 0 0
- JVM(三) 类的加载、连接与初始化
- jvm(一)类的加载,连接,初始化简介
- jvm(二)类的加载,连接,初始化详解
- JVM的类加载机制: 加载、连接、初始化。
- JVM之加载、连接与初始化
- JVM之加载、连接与初始化
- JVM虚拟机学习笔记01:类的加载、连接、初始化
- jvm之类的加载、连接、初始化
- 【JVM】类加载、连接和初始化过程
- 类的加载、连接与初始化
- JVM 类的加载初始化
- 深入理解JVM八---Java类的连接与初始化
- (2.1.1)JVM内容:Java 类加载与初始化
- 类的加载连接初始化
- 类的加载连接初始化
- JVM 之类加载与初始化
- 01.类的加载、连接、与初始化(概述)
- JVM类使用过程(加载,初始化)
- xshell自定义配色
- Django model中设置多个字段联合唯一约束
- 操作系统为什么要分用户态和内核态
- java之面向对象的三个特性
- python读取excel表格
- JVM(三) 类的加载、连接与初始化
- 新手初次安装caffe,一次成功仅CPU win7 64位(一)
- JavaScript 函数(一)- 函数的定义及调用
- 构造方法,析构函数
- 基于 Python 的数据结构与算法分析学习记录(6-8)—— 基于二叉堆的优先队列
- HTML 使用小技巧
- 8. String to Integer (atoi)
- 0005、node 之数据库操作mysql()基本介绍
- writev用法