`
bulargy
  • 浏览: 65123 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jvm的一些记录

阅读更多
1.每一个java程序都运行于自己的jvm实例上
2.当一个程序中的所有非守护进程都终止时,该程序的jvm实例将自动退出
3.每个jvm都有一个类装载器子系统,都有一个执行引擎
4.运行时数据区包含:方法区、堆、java栈、PC寄存器、本地方法栈
5.每个jvm实例都有自己的一个方法区和一个堆区,被该jvm实例的中所有线程共享
6.当一个线程被创建时,它将得到自己PC寄存器和一个java栈
7.线程执行java方法(非本地方法)时,PC寄存器的值总是指示下一条被执行的指令,java栈总是存执该线程中java方法调用的状态(局部变量、调用时传入的参数、返回值、运算中间结果等)
8.java栈时有栈帧组成,一个栈帧包含一个java方法调用的状态。
9.线程调用一个java方法时,jvm压入一个新的栈帧到该线程的java栈里,方法返回时弹出并抛弃该栈帧。
10.jvm没有寄存器,其指令集使用java栈来存储中间数据
11.jvm为每一个线程创建私有的内存区,任何线程都不能访问另一个线程的PC寄存器和java栈
12.java中所有的基本类型同样也是jvm中的基本类型
13.java字节码中boolean是用int类型来操作,boolean数组当成byte数组访问。但是在堆中,它也可以表示为位域
14.和java语言一样,jvm中的基本类型的值域在任何地方都是一致的
15.jvm中还有一个只在内部使用的基本类型:returnAddress,用于实现java程序中的finally子句
16.jvm的3种引用类型:类类型,接口类型,数组类型;特殊引用是null
17.jvm有2种类装载器:启动类装载器和用户自定义类装载器,由不同的类装载器装在的类将被放在jvm内部的不同命名空间中
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics