【java JVM】JVM中类的加载,加载class文件的原理机制
2024-08-31 16:50:42
暂时贴图一张,以后补充
解释:
1.符号引用替换为直接引用【参考:http://blog.csdn.net/maerdym/article/details/8087620】
在java中,一个java类将会编译成一个class文件。在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool(假设)来表示Tool类的地址。而在类装载器装载People类时,此时可以通过虚拟机获取Tool类 的实际内存地址,因此便可以既将符号org.simple.Tool替换为Tool类的实际内存地址,及直接引用地址。
2.构造代码块中的代码也是在构造方法中执行的【参考:http://bbs.csdn.net/topics/390635323?page=1】
在编译时的编译器看来会默认将构造代码块中的代码移动到构造方法中,并且移动到构造方法内容的前面。
看如下demo:
public class TestCode { public TestCode() {
System.out.println("构造方法");
} {
System.out.println("代码块");
} public static void main(String[] args) {
new TestCode();
}
}
等同于:
public class TestCode { public TestCode() {
System.out.println("代码块");
System.out.println("构造方法");
} public static void main(String[] args) {
new TestCode();
}
}
最新文章
- Cesium简介以及离线部署运行
- MySQL InnoDB存储引擎
- jenkins邮件通知功能
- js创建和获取cookie
- 学完了js的知识,一起分享总结知识点
- 线程和NSThread 、 NSOperation
- MD5的使用
- 基于Visual C++2013拆解世界五百强面试题--题8-数组的排序和查找
- 在最完整的搜索提示降史上的用户交互的研究——阅读《An Eye-tracking Study of User Interactions with Query Auto Completion》
- 在Java编码中,如何减少bug数量
- UniGUI 如何进行 UniDBGrid 的单元 Cell 的计算 ?
- ActiveMQ安装与入门程序 &; JMS的消息结构
- 潭州课堂25班:Ph201805201 WEB 之 CSS 第三课 (课堂笔记)
- 百度uid-generator源码
- Github 快速上手实战教程
- ARKit从入门到精通(5)-ARScnView介绍
- 【代码审计】EasySNS_V1.6 前台任意文件下载漏洞分析
- nginx后端节点健康检查
- Django API验证(令牌)
- mybatis的操作数据库基础