Java反射

本文详细介绍了Java虚拟机的类加载机制,包括加载、连接和初始化三个步骤。类加载涉及将class文件读入内存并创建Class对象,连接阶段包括验证、准备和解析,而初始化则专注于静态成员的初始化和执行初始化语句。类的初始化在创建实例、使用静态成员或方法、通过反射等方式触发。
摘要由CSDN通过智能技术生成

反射

虚拟机中类的加载机制

1.1.1类加载概述

虚拟机的类加载机制:虚拟机把描述类的数据从class文件放入内存,并对其数据进行校验,解析,分析和初始化,最后形成能够被java虚拟机直接调用的java类型 。

1.1.2.类加载过程

当程序要使用某个类时,如果该类还未被加载到内存中,系统会通过加载、连接、初始化三步来实现对这个类的加载。

加载:
1.将class文件读入内存,并建立一个Class对象
2.任何类被使用是系统都会建立一个Class对象。

连接:
1.验证是否有正确的内部结构,其他类协调一致。
2.准备负责为类的静态成员分配内存,并设置默认初始值。
3.解析将类的二进制数据中的符号引用替换为直接引用。

初始化:
1.主要对类的变量进行初始化
2.如该类还有直接弗雷,则先初始化其直接父类
3.有初始化语句,按顺序执行

1.1.3类的初始化时机

当使用这个类型时JVM虚拟机就会开始对这个类型进行加载和初始化

  1. 创建类的实例(对象)
  2. 类的静态成员使用
  3. 类的静态方法调用
  4. 使用反射方式来强制创建某个类或者接口对应的java.lang.Class对象
  5. 初始化某个类的子类
  6. 直接使用java.exe命令来运行某个主类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值