初识JVM(一)

1、jvm的运行流程

2、jvm的基本结构:

  • 类加载器
  • 执行引擎
  • 本地方法库
  • 运行时数据区(重点关注)
  1. 方法区;2. java堆(Heap);3. java栈(Stack);4. 本地方法栈;5. 程序计数器(PC Register)

3、类的装载过程

加载--》连接(验证、准备、解析)--》初始化--》使用--》卸载

class文件 ---保存类的定义或结构  ----- 保存在堆中

4、什么是初始化?

执行类的构造器,为类的静态变量赋予正确的初始值。

5、什么是构造器?

构造器包含1.static变量;2.static{ } 语句

public static int tmp = 2;    
static{       
    tmp = 3;    
}

6、构造器和构造方法有什么不同?

构造器:构造对象;
构造方法:实例化对象。

先执行构造器,再执行构造方法。

7、为什么要使用双亲委派机制?

为了防止重复加载,不产生安全隐患。比如:我们自己定义了一个String类。

8、JDK已有的类加载器

  • 启动类加载器 BootStrap Classloader(C++编写的)   --》 加载rt.jar等
  • 扩展类加载器 Extension Classloader(JAVA编写的)   --》 加载%JAVA_HOME%/lib/ext/*.jar
  • 应用程序类加载器 Application Classloader(JAVA编写的)   --》 加载CLASSPATH,.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
  • 自定义类加载器 Custom Classloader  --》 完全自定义加载路径

9、启动类加载器的源码在哪里?以ClassLoader为例:

(JDK的启动类加载器并不是只加载rt.jar一个,而是JRE System Library目录下所有的jar包)

10、自定义类加载器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值