4.1字节码

java文件编译成字节码后由默认解释执行,热点代码编译执行。
方法调用到一定程度的时候,进行JIT编译成机器码执行,后面直接运行JIT编译结果(机器码)。

4.2类加载过程

加载链接初始化
加载:字节码进入内存
链接:验证(cafebabe等)、准备(类变量赋初始值)、解析(确保类与类之间引用正确)。
初始化:调用类构造器<clinit>方法,如果复制运算是通过其他类静态方法来执行的,那么会马上执行另外一个类,在虚拟机栈中执行完毕后返回值进行赋值。

双亲委派机制加载字节码:
    1.询问是否加载过:AppClassLoader->ExtClassLoader->bootstClassLoader
    2.顶部尝试开始加载:bootstClassLoader->ExtClassLoader->AppClassLoader

4.3内存布局

堆:

所有的对象都创建在此,字符串常量池也存放在这里。
    -Xms256M -Xmx1024M 其中X表示JVM运行参数,ms是memory start的简称,mx是memory max的简称。
    为了不扩容收缩影响性能,生产环境最好设置一样的大小。
    新生代,老年代。

metaspace(元空间)

虚拟机栈

局部变量表、操作栈、动态链接、返回地址。

局部变量表中的数据到操作栈中进行操作,动态链接存放常量表中的方法,方法返回地址。

本地方法栈

JNI(Java Native Interface)调用。如System.currentTimeMills。对性能要求极高和特殊作用。

程序计数器:

cpu有时间片轮询执行,被打断,程序计数器就是记录当前执行的位置。

总结

4.4对象实例化

最新文章

  1. 最全面的常用正则表达式大全 zz
  2. phalcon: 当删除循环删除一组数据,需要判断影响的行affectedRows
  3. JS 获取地址栏三级域名(改进版)
  4. Linux中source是什么指令?
  5. BizTalk 2013R2 WCF-LOB Oracle Adapter安装配置/问题&amp;解决方法
  6. 20145227 《Java程序设计》第1周学习总结
  7. IAP 程序内购
  8. ABBYY FineReader 12 能够识别哪些文档语言
  9. android从资源文件中读取文件流显示
  10. UIResponder
  11. 函数buf_LRU_get_free_only
  12. HDU分类
  13. Layout( 布局)
  14. iOS 获取系统目录
  15. CentOS 6.5安装JDK、Tomcat、Mysql
  16. json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)
  17. JavaScript &amp; Dom 之 基本语法
  18. c# ThreadPool 判断子线程全部执行完毕的四种方法
  19. ShaderLab学习总结
  20. django之创建第6-2个项目-过滤器列表

热门文章

  1. 【leetcode】712. Minimum ASCII Delete Sum for Two Strings
  2. 对webpack的初步研究4
  3. Task10.Bert
  4. LeetCode--057--插入区间(java)
  5. 测量TSQL语句的性能
  6. php in_array()函数 语法
  7. Word文档粘贴到DEDECMS
  8. phpjm解密程序,也适用于其他混淆加密的破解
  9. DataTable 转Json格式C#代码
  10. python内置装饰器