码迷,mamicode.com
首页 > 编程语言 > 详细

java 类加载机制和反射机制

时间:2018-08-17 11:23:05      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:分享图片   static   stat   java类型   自动   img   规范   运行时   java语言   

1.类的加载机制
jvm把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成jvm可以直接使用的java类型的过程。
(1)加载
         将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。
(2)链接 将java类的二进制代码合并到jvm的运行状态之中的过程

    1.  验证:确保加载的类信息符合jvm规范,没有安全方面的问题。
    2.  准备:正式为类变量(static变量)分配内存并设置类变量初始值的阶段,这些内存都将在方法区中进行分配。
    3.  解析:虚拟机常量池内的符号引用替换为直接引用的过程。(比如String s ="aaa",转化为 s的地址指向“aaa”的地址)


(3)初始化
        初始化阶段是执行类构造器方法的过程。类构造器方法是由编译器自动收集类中的所有类变量的赋值动作和静态语句块(static块)中的语句合并产生的。
        当初始化一个类的时候,如果发现其父类还没有进行过初始化,则需要先初始化其父类的初始化
        虚拟机会保证一个类的构造器方法在多线程环境中被正确加锁和同步
        当访问一个java类的静态域时,只有真正声明这个静态变量的类才会被初始化。
2.java反射机制
       JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

技术分享图片

 

 

java 类加载机制和反射机制

标签:分享图片   static   stat   java类型   自动   img   规范   运行时   java语言   

原文地址:https://www.cnblogs.com/echola/p/9491950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!