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、XML AJAX: Asynchronous Javascript And Xml 1、什么是XML eXtensible Markup Language 可扩展的 标记 语言 XML的标记没有预定义过,需要自行定义 XML的宗旨是做数据传递的,而非数据显示 2、XML的语法...
### 浅学二极管与三极管 #### 一、二极管基础 ##### 1.1 PN结概述 二极管的核心是**PN结**。**PN结**是通过特殊的制造工艺,在同一块半导体材料(通常是硅或锗)上,通过扩散作用将**P型半导体**和**N型半导体**...
`定义了一个包含两个整数字段的记录类型`Trec`,并且可以初始化记录常量,如`IntRec : Trec = (fl1:1; fl2:2);`。 总的来说,Pascal语言以其严谨的语法和丰富的数据类型,为初学者提供了学习编程的良好起点。理解...
通过对RC充放电电路的学习,我们了解到电容器是一种重要的储能元件,能够实现充电和放电过程,并且这一过程的速度可以通过调整电阻和电容的值来控制。RC电路不仅在基础电路分析中占据重要地位,也在实际应用中发挥着...
通过对RC充放电电路、三极管电路、NE555电路以及CD4017电路的学习与理解,我们不仅能够设计出电子幸运大转盘的基本电路,还能进一步优化其性能,比如通过调整电阻和电容的参数来改变LED灯的移动速度或等待时间。...
1. 这个是git上朋友发的,我这就是蹭蹭人家流量了 2. 是一个时序预测的问题的数据集 3. 每个小时一个数据,每个batch训练的数据是前一周也就是196个小时,预测的结果是下一天的数据24小时
### 字节序的基础概念 字节序,又称为字节顺序或字节排列方式,指的是在计算机内存中或网络传输过程中多字节数据的存储顺序。...无论是对于初学者还是有经验的程序员来说,深入学习字节序的相关知识都是非常有益的。
(7)这篇文章只是为了供一些初学者免费学习(主要是当时哥们交作业的时候没有找到类似的,就浅学了一点点内容然后做出来的,内容肯定不够充实完整),不要不要直接当大作业交上去!!! 适用读者: 学习移动终端...
1.在布局文件中指定onClick属性的方式设置点击事件 这里就是通过布局文件中Button控件的属性值onClick=”click”实行回调函数click,代表着点击按钮有click方法响应。 回调函数代码如下,首先要通过id找到对应的...
非常好的教程,浅学易懂,主要是基于centos的讲解
3. 创新教学方法:避免盲目追求新颖,教学方法应以激发学生兴趣、提高学习效率为目标,确保每个学生都有平等的学习机会,降低学习的负担,提高学习的乐趣,从而克服浅学、苦学、倦学和厌学的问题。 4. 强化学生主体...
基于Huffman编码思路的一个测试性压缩工具,但是由于个人水平原因(浅学的业余爱好者),并没有利用到Huffman编码的树状结构特点。另,由于快开学了......so,bug还没来得及修复,开学后有时间我会再打磨一下,另,...
由于小编接触Vue比较多,React只是浅学,所以本篇主要针对Vue来展开介绍,带你一步一步搞懂它。 虚拟DOM 什么是虚拟DOM? 虚拟DOM(Virtual Dom),也就是我们常说的虚拟节点,是用JS对象来模拟真实DOM中的节点,...
1. "time flies." —— 时间易逝。 这句话提醒我们时间过得飞快,要珍惜每一刻。 2. "time is money." —— 一寸光阴一寸金。 这句谚语告诫我们时间如同金钱,应高效利用时间。 3. "time and tide wait for no man...
内容概要:本文详细解析了中国企业出海的发展趋势及其在4.0阶段的新特点。报告涵盖了企业出海的背景、驱动力和发展阶段,强调了企业在不同领域的出海路径、模式及区域选择。特别提及了电子商务、信息技术、先进制造...
oclhashcat.zip
我的选课建议和升学经验 .pages
《中国企业海外人才发展白皮书》2021年版由领英中国联合中国贸易报社发布,深入分析了中国企业在海外的人才发展现状和趋势。报告指出,在疫情和逆全球化的双重压力下,中国企业海外用工节奏未被打乱,反而迎来逆周期...