zoukankan      html  css  js  c++  java
  • Java虚拟机JVM学习02 类的加载概述

    Java虚拟机JVM学习02 类的加载概述

     

     

    类的加载

      类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。

      加载.class文件的方式:

      1.从本地系统中直接加载

      2.通过网络下载.class文件

      3.从zip,jar等归档文件中加载.class文件

      4.从专有数据库中提取.class文件

      5.将Java源文件动态编译为.class文件

     

      类的加载的最终产品是位于堆区中的Class对象。

      Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。

     

     

    类加载器

      加载器有两种类型:

      1.Java虚拟器自带的加载器

            根类加载器(Bootstrap)

            扩展类加载器(Extension)

            系统类加载器或称应用加载器(System)

      后两种加载器是Java实现的,根类加载器是C++写的,程序员无法在Java代码中获得该类。

      2.用户自定义的类加载器

            java.lang.ClassLoader的子类

            用户可以定制类的加载方式

     

      类加载器并不需要等到某个类被首次主动使用时再加载它。

      JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载的过程中遇到了.class文件缺失或存在错误,类加载器必须在程序首次主动使用该类时才报告错误(LinkageError)。如果这个类一直没有被程序主动使用,那么类加载器就不会报告错误。

  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/zno2/p/4549922.html
Copyright © 2011-2022 走看看