美文网首页
java反射机制JVM加载类

java反射机制JVM加载类

作者: 月如钩dgf | 来源:发表于2021-09-22 23:11 被阅读0次

    一:反射

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

    二:类的加载

    第一步.加载:值得是Class.forName("全限定名"),加载字节码文件
    第二步:链接又分为验证,准备,解析
    验证:指的是检验字节码的合法性
    准备:指给静态变量分配内存空间,并且赋初始默认值
    解析:指的是将符号引用转换为直接引用
    第三步:初始化:指静态变量赋值和执行类中的初始化(static)语句
      初始化的时机有6种情况:
         第一:创建类的实例(有4种方式)
         第二:访问静态变量或者给静态变量赋值
        第三:调用类静态方法
        第四:调用Class.forName("包类名")如加载数据库驱动
         第五:完成子类的初始化也会完成本类初始化
         第六:该类是程序的引导入口,比如main入口或test入口

    三,jvm的五大区域

    1、程序计数器:程序计数器是一块很小的内存空间,它是线程私有的,可以认作为当前线程的行号指示器就说线程执行的位置记录。
    2、栈(虚拟机栈):线程的独占空间,线程每次调用方法执行都会放入这里面,平时说的栈一般指局部变量表部分。
    3、本地方法区:本地方法栈则为虚拟机使用到的native方法服务,可能底层调用的c或者c++,我们打开jdk安装目录可以看到也有很多用c编写的文件,可能就是native方法所调用的c代码
    4、方法区:方法区用于存储已被虚拟机加载的类信息、常量、静态变量,如static修饰的变量加载类的时候就被加载到方法区中
    5、:存放new出来的对象信息, 全局变量

    相关文章

      网友评论

          本文标题:java反射机制JVM加载类

          本文链接:https://www.haomeiwen.com/subject/smmggltx.html