SlideShare a Scribd company logo
1 of 60
Download to read offline
北京圣思园科技有限公司
http://www.shengsiyuan.com
主讲人 张龙
All Rights Reserved
• Java虚拟机与程序的生命周期
• 在如下几种情况下,Java虚拟机将结束生
命周期
– 执行了System.exit()方法
– 程序正常执行结束
– 程序在执行过程中遇到了异常或错误而异常终
止
– 由于操作系统出现错误而导致Java虚拟机进程
终止
• 加载:查找并加载类的二进制数据
• 连接
– 验证:确保被加载的类的正确性
– 准备:为类的静态变量分配内存,并将其初始
化为默认值
– 解析:把类中的符号引用转换为直接引用
• 初始化:为类的静态变量赋予正确的初始
值
• Java程序对类的使用方式可分为两种
– 主动使用
– 被动使用
• 所有的Java虚拟机实现必须在每个类或接
口被Java程序“首次主动使用”时才初始
化他们
• 主动使用(六种)
– 创建类的实例
– 访问某个类或接口的静态变量,或者对该静态
变量赋值
– 调用类的静态方法
– 反射(如
Class.forName(“com.shengsiyuan.Test”)
)
– 初始化一个类的子类
– Java虚拟机启动时被标明为启动类的类(Java
Test)
• 除了以上六种情况,其他使用Java类的方
式都被看作是对类的被动使用,都不会导
致类的初始化
• 类的加载指的是将类的.class文件中的二进
制数据读入到内存中,将其放在运行时数
据区的方法区内,然后在堆区创建一个
java.lang.Class对象,用来封装类在方法
区内的数据结构
• 加载.class文件的方式
– 从本地系统中直接加载
– 通过网络下载.class文件
– 从zip,jar等归档文件中加载.class文件
– 从专有数据库中提取.class文件
– 将Java源文件动态编译为.class文件
• 类的加载的最终产品是位于堆区中的
Class对象
• Class对象封装了类在方法区内的数据结构
,并且向Java程序员提供了访问方法区内
的数据结构的接口
• 有两种类型的类加载器
– Java虚拟机自带的加载器
• 根类加载器(Bootstrap)
• 扩展类加载器(Extension)
• 系统类加载器(System)
– 用户自定义的类加载器
• java.lang.ClassLoader的子类
• 用户可以定制类的加载方式
• 类加载器并不需要等到某个类被“首次主
动使用”时再加载它
• JVM规范允许类加载器在预料某个类将要
被使用时就预先加载它,如果在预先加载
的过程中遇到了.class文件缺失或存在错误
,类加载器必须在程序首次主动使用该类
时才报告错误(LinkageError错误)
• 如果这个类一直没有被程序主动使用,那
么类加载器就不会报告错误
• 类被加载后,就进入连接阶段。连接就是
将已经读入到内存的类的二进制数据合并
到虚拟机的运行时环境中去。
• 类的验证的内容
– 类文件的结构检查
– 语义检查
– 字节码验证
– 二进制兼容性的验证
• 类的初始化步骤
• 主动使用(六种)
– 创建类的实例
– 访问某个类或接口的静态变量,或者对该静态
变量赋值
– 调用类的静态方法
– 反射(如
Class.forName(“com.shengsiyuan.Test”)
)
– 初始化一个类的子类
– Java虚拟机启动时被标明为启动类的类(Java
Test)
• 除了上述六种情形,其他使用Java类的方
式都被看作是被动使用,不会导致类的初
始化
• 只有当程序访问的静态变量或静态方法确
实在当前类或当前接口中定义时,才可以
认为是对类或接口的主动使用
• 调用ClassLoader类的loadClass方法加载
一个类,并不是对类的主动使用,不会导
致类的初始化。
• 修改MyClassLoader类的源代码
北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader

More Related Content

What's hot

JVM 初探
JVM 初探JVM 初探
JVM 初探zyh
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Justin Lin
 
Java 案例实战(一)
Java 案例实战(一)Java 案例实战(一)
Java 案例实战(一)lovebirdegg
 
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James LiuDrupal Taiwan
 
Entity Framework實戰
Entity Framework實戰Entity Framework實戰
Entity Framework實戰國昭 張
 
Android开发基础
Android开发基础Android开发基础
Android开发基础ykdsg
 
Java中的内存泄漏与防止办法
Java中的内存泄漏与防止办法Java中的内存泄漏与防止办法
Java中的内存泄漏与防止办法zxsoft
 
開發環境建置
開發環境建置開發環境建置
開發環境建置Shengyou Fan
 
CH02:從JDK到IDE
CH02:從JDK到IDECH02:從JDK到IDE
CH02:從JDK到IDEJustin Lin
 
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發koji lin
 
Laravel - 系統全攻略(續)
Laravel - 系統全攻略(續)Laravel - 系統全攻略(續)
Laravel - 系統全攻略(續)Vincent Chi
 
Java SE 7 技術手冊投影片第 01 章 - Java平台概論
Java SE 7 技術手冊投影片第 01 章 - Java平台概論Java SE 7 技術手冊投影片第 01 章 - Java平台概論
Java SE 7 技術手冊投影片第 01 章 - Java平台概論Justin Lin
 
Supersonic Subatomic Quarkus accelerate cloud native development
Supersonic Subatomic Quarkus accelerate cloud native developmentSupersonic Subatomic Quarkus accelerate cloud native development
Supersonic Subatomic Quarkus accelerate cloud native developmentRyan ZhangCheng
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎Shengyou Fan
 

What's hot (20)

JVM 初探
JVM 初探JVM 初探
JVM 初探
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
 
Java 案例实战(一)
Java 案例实战(一)Java 案例实战(一)
Java 案例实战(一)
 
Route 機制
Route 機制Route 機制
Route 機制
 
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu
 
Entity Framework實戰
Entity Framework實戰Entity Framework實戰
Entity Framework實戰
 
Android开发基础
Android开发基础Android开发基础
Android开发基础
 
Java中的内存泄漏与防止办法
Java中的内存泄漏与防止办法Java中的内存泄漏与防止办法
Java中的内存泄漏与防止办法
 
開發環境建置
開發環境建置開發環境建置
開發環境建置
 
CH02:從JDK到IDE
CH02:從JDK到IDECH02:從JDK到IDE
CH02:從JDK到IDE
 
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發
 
CRUD 綜合應用
CRUD 綜合應用CRUD 綜合應用
CRUD 綜合應用
 
Laravel - 系統全攻略(續)
Laravel - 系統全攻略(續)Laravel - 系統全攻略(續)
Laravel - 系統全攻略(續)
 
Java SE 7 技術手冊投影片第 01 章 - Java平台概論
Java SE 7 技術手冊投影片第 01 章 - Java平台概論Java SE 7 技術手冊投影片第 01 章 - Java平台概論
Java SE 7 技術手冊投影片第 01 章 - Java平台概論
 
使用者認證
使用者認證使用者認證
使用者認證
 
使用 Controller
使用 Controller使用 Controller
使用 Controller
 
工作坊總結
工作坊總結工作坊總結
工作坊總結
 
工作坊總結
工作坊總結工作坊總結
工作坊總結
 
Supersonic Subatomic Quarkus accelerate cloud native development
Supersonic Subatomic Quarkus accelerate cloud native developmentSupersonic Subatomic Quarkus accelerate cloud native development
Supersonic Subatomic Quarkus accelerate cloud native development
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 

Similar to 北京圣思园深入Java虚拟机 class loader

如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scalajavatwo2011
 
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫Justin Lin
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7Justin Lin
 
JVM内容管理和垃圾回收
JVM内容管理和垃圾回收JVM内容管理和垃圾回收
JVM内容管理和垃圾回收Tony Deng
 
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Justin Lin
 
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJava SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJustin Lin
 
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫Justin Lin
 
Java trouble shooting
Java trouble shootingJava trouble shooting
Java trouble shootingMin Zhou
 
如何開發Thread Safe的Java Web程式
如何開發Thread Safe的Java Web程式如何開發Thread Safe的Java Web程式
如何開發Thread Safe的Java Web程式Ying-Chun Cheng
 
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫Justin Lin
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训Cody Zhang
 
Notes of jcip
Notes of jcipNotes of jcip
Notes of jcipDai Jun
 
辽宁大学私有云项目分析
辽宁大学私有云项目分析辽宁大学私有云项目分析
辽宁大学私有云项目分析博 孟
 
CH16:整合資料庫
CH16:整合資料庫CH16:整合資料庫
CH16:整合資料庫Justin Lin
 
20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting祺元 曾
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训ytsolar
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践Na Lee
 
02.web sphere培训 应用websphere
02.web sphere培训 应用websphere02.web sphere培训 应用websphere
02.web sphere培训 应用webspherelittlecong
 
Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)ddviplinux
 
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletServlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletJustin Lin
 

Similar to 北京圣思园深入Java虚拟机 class loader (20)

如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala
 
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
 
JVM内容管理和垃圾回收
JVM内容管理和垃圾回收JVM内容管理和垃圾回收
JVM内容管理和垃圾回收
 
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
 
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJava SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
 
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
 
Java trouble shooting
Java trouble shootingJava trouble shooting
Java trouble shooting
 
如何開發Thread Safe的Java Web程式
如何開發Thread Safe的Java Web程式如何開發Thread Safe的Java Web程式
如何開發Thread Safe的Java Web程式
 
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训
 
Notes of jcip
Notes of jcipNotes of jcip
Notes of jcip
 
辽宁大学私有云项目分析
辽宁大学私有云项目分析辽宁大学私有云项目分析
辽宁大学私有云项目分析
 
CH16:整合資料庫
CH16:整合資料庫CH16:整合資料庫
CH16:整合資料庫
 
20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
 
02.web sphere培训 应用websphere
02.web sphere培训 应用websphere02.web sphere培训 应用websphere
02.web sphere培训 应用websphere
 
Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)
 
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletServlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
 

More from Medivh2011 (19)

Unit test lesson 3
Unit test lesson 3Unit test lesson 3
Unit test lesson 3
 
Unit test lesson 1
Unit test lesson 1Unit test lesson 1
Unit test lesson 1
 
Unit test lesson 2
Unit test lesson 2Unit test lesson 2
Unit test lesson 2
 
Swing
SwingSwing
Swing
 
Reflection
ReflectionReflection
Reflection
 
Network
NetworkNetwork
Network
 
Multithread
MultithreadMultithread
Multithread
 
Jdk5
Jdk5Jdk5
Jdk5
 
Io 3
Io 3Io 3
Io 3
 
Io 2
Io 2Io 2
Io 2
 
Io 1
Io 1Io 1
Io 1
 
Inner class
Inner classInner class
Inner class
 
Event
EventEvent
Event
 
El
ElEl
El
 
Collection
CollectionCollection
Collection
 
Clone
CloneClone
Clone
 
Class loader
Class loaderClass loader
Class loader
 
Awt
AwtAwt
Awt
 
Ant
AntAnt
Ant
 

Recently uploaded

1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...黑客 接单【TG/微信qoqoqdqd】
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxmekosin001123
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxmekosin001123
 
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,Xin Yun Teo
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书jakepaige317
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxmekosin001123
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制jakepaige317
 

Recently uploaded (7)

1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptx
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
 
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptx
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
 

北京圣思园深入Java虚拟机 class loader