第四章 走进jVM
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对象实例化
第四章 走进jVM的更多相关文章
- 《码出高效 Java开发手册》第四章 走进JVM(未整理)
码云地址: https://gitee.com/forxiaoming/JavaBaseCode/tree/master/EasyCoding
- Getting Started With Hazelcast 读书笔记(第四章)
第四章 分而治之 在指导了如何进行基本使用之后,又再次进入理论模块. Hazelcast的基本策略就是切片分区,默认是271个片.内置一个 partition table记录那个节点是那个分区,并在h ...
- Gradle 1.12 翻译——第十四章. 教程 - 杂七杂八
有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...
- Java基础知识二次学习--第四章 异常
第四章 异常处理 时间:2017年4月26日11:16:39~2017年4月26日11:28:58 章节:04章_01节 04章_02节 视频长度:20:46+01:16 内容:异常的概念 心得: ...
- java并发编程的艺术——第四章总结
第四章并发编程基础 4.1线程简介 4.2启动与终止线程 4.3线程间通信 4.4线程应用实例 java语言是内置对多线程支持的. 为什么使用多线程: 首先线程是操作系统最小的调度单元,多核心.多个线 ...
- 《Java程序设计》第四章-认识对象
20145221<Java程序设计>第四章-认识对象 总结 教材学习内容总结 类与对象 定义:对象是Java语言中重要的组成部分,之前学过的C语言是面向过程的,而Java主要是面向对象的. ...
- 《深入理解java虚拟机》读书笔记三——第四章
第四章 虚拟机性能监控与故障处理工具 1.JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程. 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- 《Linux内核设计与实现》读书笔记 第四章 进程调度
第四章进程调度 进程调度程序可看做在可运行太进程之间分配有限的处理器时间资源的内核子系统.调度程序是多任务操作系统的基础.通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的 ...
随机推荐
- 【leetcode】301. Remove Invalid Parentheses
题目如下: 解题思路:还是这点经验,对于需要输出整个结果集的题目,对性能要求都不会太高.括号问题的解法也很简单,从头开始遍历输入字符串并对左右括号进行计数,其中出现右括号数量大于左括号数量的情况,表示 ...
- layoutSubviews 详解
ios layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size - (void)sizeToFit ------- - (void)layoutSubview ...
- css3的各种属性的讲解
1.渐变(gradients) 水平渐变:linear gradient 语法:background:linear-gradient(direction,color1,color2); directi ...
- Java日期处理类的相关使用
java常用类-java日期处理类 Date类 Date类是jdk给我们提高的标准日期类,在java.util包下: 示例代码: import java.util.Date; public class ...
- 五一清北学堂培训之数据结构(Day 1&Day 2)
Day 1 前置知识: 二进制 2.基本语法 3.时间复杂度 正片 1.枚举 洛谷P1046陶陶摘苹果 入门题没什么好说的 判断素数:从2枚举到sqrt(n),若出现n的因子,则n是合数 ...
- 今天刚到货的小米平板2,就出现dnx fastboot mode一直卡死黑屏
http://bbs.xiaomi.cn/t-11786254 今天刚到货的小米平板2,就出现dnx fastboot mode一直卡死黑屏, 发表在晒机评测2015-11-30 14:22:57 来 ...
- tp框架 MVC模式
一.定义 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方 ...
- 【ABAP系列】SAP ABAP常用正则表达式大全
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP常用正则表达式大 ...
- spring security简单教程以及实现完全前后端分离
spring security是spring家族的一个安全框架,入门简单.对比shiro,它自带登录页面,自动完成登录操作.权限过滤时支持http方法过滤. 在新手入门使用时,只需要简单的配置,即可实 ...
- RMQ(连续相同最大值)
http://poj.org/problem?id=3368 Frequent values Time Limit: 2000MS Memory Limit: 65536K Total Submi ...