`
alex09
  • 浏览: 974908 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

浅学JAVA类加载

阅读更多
Java ClassLoader
Java的类加载器是个什么,如何运做... 学习下.

类加载器使J具有动态性,J程序是由许多类组成,每个类生成一个文件,互相对应.
执行时JVM找到J程序需要的类并载入内存.
就是把硬盘的.CLASS文件复制一份到内存中,并初始化

例:
class A{
   public void print(){
       System.out.println("class A");
   }
}
class B{
    public void print(){
        System.out.println("class B");
    }
}

public class Main{
    public static void main (String[] args){
       A a=new A();
       a.print();
       B b=new B();
       b.print();
    }
}


执行 java -verbose:class Main

[Loaded java.io.FilePermission from shared objects file]
[Loaded java.io.FilePermission$1 from shared objects file]
[Loaded java.io.FilePermissionCollection from shared objects f
[Loaded java.security.AllPermission from shared objects file]
[Loaded java.security.UnresolvedPermission from shared objects
[Loaded java.security.BasicPermissionCollection from shared ob
[Loaded java.security.Principal from shared objects file]
[Loaded java.security.cert.Certificate from shared objects fil
[Loaded Main from file:/C:/wang/]
[Loaded A from file:/C:/wang/]
class A
[Loaded B from file:/C:/wang/]
class B
[Loaded java.lang.Shutdown from shared objects file]
[Loaded java.lang.Shutdown$Lock from shared objects file]


先把核心类库载入内存,然后可以清楚的看到载入了J程序的类Main.class,A.class
B.class到内存中.

当然,如果程序中先new一个B的对象调用print方法,在new个A的对象调用print方法,
就是载入Main.class,B.class,A.class

java.exe找到JRE,运行时环境执行.class文件.

  預先载入,按需求載入

在自己写的类中,B.class和A.class在用到这些类的时候才回被载入...

把程序B实例化的例子和调用方法的语句注释后,B类就不会被载入.

[Loaded Main from file:/C:/wang/]
[Loaded A from file:/C:/wang/]
class A
[Loaded java.lang.Shutdown from shared objects file]
[Loaded java.lang.Shutdown$Lock from shared objects file]

只载入了A类和主类.

不管如何,总会载入JAVA的基础类库,既JAVA程序必须的类,预先载入.
自己写的类载入就是按需求载入.

分享到:
评论

相关推荐

    浅学二极管与三极管

    ### 浅学二极管与三极管 #### 一、二极管基础 ##### 1.1 PN结概述 二极管的核心是**PN结**。**PN结**是通过特殊的制造工艺,在同一块半导体材料(通常是硅或锗)上,通过扩散作用将**P型半导体**和**N型半导体**...

    pascal语言的浅学

    Pascal是一种结构化编程语言,它的设计目标是提高代码的清晰性和可读性。这篇文章将带你初步了解Pascal语言的一些核心概念。 首先,Pascal的语法基础包括标记(TOKEN)。标记是构成程序的基本元素,包括特别符号、...

    浅学RC充放电电路

    ### RC充放电电路知识点详解 #### 一、电容充放电原理 **1.1 电容充电** - **定义**: 当电容器接入电路并接通电源时,正极板上的自由电子通过电源向负极板移动,使得正极板失去负电荷而带正电,负极板获得负电荷而...

    浅学电子幸运大转盘知识

    ### 电子幸运大转盘知识点解析 #### 一、电路设计概述 电子幸运大转盘是一种基于电子技术的娱乐装置,常用于抽奖等场合。它通过电路设计实现了LED灯的流水循环显示,模拟了转盘转动的效果,并最终随机停在一个位置...

    xml浅学笔记

    返回值:返回一个包含指定元素们的类数组 5、在php中返回xml格式的字符串 1、必须增加响应消息头 header("Content-Tupe:application/xml"); 2、按照xml的语法结构,拼xml字符串,再响应给客户端 $xml="<?...

    浅学字节序——字节序大小端,主机字节序,网络字节序的理解

    ### 字节序的基础概念 字节序,又称为字节顺序或字节排列方式,指的是在计算机内存中或网络传输过程中多字节数据的存储顺序。简单来说,它定义了多字节数据中各个字节如何按顺序排列。在实际编程工作中,尽管很多...

    深度学习数据+配合博文“在git上面看到的代码,浅学了一下”

    1. 这个是git上朋友发的,我这就是蹭蹭人家流量了 2. 是一个时序预测的问题的数据集 3. 每个小时一个数据,每个batch训练的数据是前一周也就是196个小时,预测的结果是下一天的数据24小时

    浅学AS,设置Button点击事件的三种方式

    这里就是通过布局文件中Button控件的属性值onClick=”click”实行回调函数click,代表着点击按钮有click方法响应。 回调函数代码如下,首先要通过id找到对应的按钮 myBtn_one.findViewById(R.id.btn_one);...

    跟我学linux-入门级教程

    非常好的教程,浅学易懂,主要是基于centos的讲解

    android-studio图书管理系统

    (7)这篇文章只是为了供一些初学者免费学习(主要是当时哥们交作业的时候没有找到类似的,就浅学了一点点内容然后做出来的,内容肯定不够充实完整),不要不要直接当大作业交上去!!! 适用读者: 学习移动终端...

    测试性压缩工具.zip

    基于Huffman编码思路的一个测试性压缩工具,但是由于个人水平原因(浅学的业余爱好者),并没有利用到Huffman编码的树状结构特点。另,由于快开学了......so,bug还没来得及修复,开学后有时间我会再打磨一下,另,...

    一篇文章带你搞懂Vue虚拟Dom与diff算法

    由于小编接触Vue比较多,React只是浅学,所以本篇主要针对Vue来展开介绍,带你一步一步搞懂它。 虚拟DOM 什么是虚拟DOM? 虚拟DOM(Virtual Dom),也就是我们常说的虚拟节点,是用JS对象来模拟真实DOM中的节点,...

    基础教育课程改革的核心理念是.pdf

    3. 创新教学方法:避免盲目追求新颖,教学方法应以激发学生兴趣、提高学习效率为目标,确保每个学生都有平等的学习机会,降低学习的负担,提高学习的乐趣,从而克服浅学、苦学、倦学和厌学的问题。 4. 强化学生主体...

    濒湖脉学(原文和白话文).doc

    戴同父常刊其误,先考月池翁著《四诊发明》八卷,皆精诣奥室,浅学未能窥造珍,因撮粹撷华僭撰此书,以便习读,为脉指南。” 《濒湖脉学》是学习中医脉学的必读著作,李时珍对脉学的贡献是不可估量的,他的研究成果...

    谚语精选(中文英文对照).doc

    33. "a little knowledge is a dangerous thing." —— 浅学误人。 只有肤浅的知识可能使人误入歧途。 34. "a handful of common sense is worth a bushel of learning." —— 少量的实际知识胜过大量的书本学习。 ...

    oclhashcat.zip

    oclhashcat.zip

    我的选课建议和升学经验 .pages

    我的选课建议和升学经验 .pages

Global site tag (gtag.js) - Google Analytics