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的更多相关文章

  1. 《码出高效 Java开发手册》第四章 走进JVM(未整理)

    码云地址: https://gitee.com/forxiaoming/JavaBaseCode/tree/master/EasyCoding

  2. Getting Started With Hazelcast 读书笔记(第四章)

    第四章 分而治之 在指导了如何进行基本使用之后,又再次进入理论模块. Hazelcast的基本策略就是切片分区,默认是271个片.内置一个 partition table记录那个节点是那个分区,并在h ...

  3. Gradle 1.12 翻译——第十四章. 教程 - 杂七杂八

    有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...

  4. Java基础知识二次学习--第四章 异常

    第四章 异常处理   时间:2017年4月26日11:16:39~2017年4月26日11:28:58 章节:04章_01节 04章_02节 视频长度:20:46+01:16 内容:异常的概念 心得: ...

  5. java并发编程的艺术——第四章总结

    第四章并发编程基础 4.1线程简介 4.2启动与终止线程 4.3线程间通信 4.4线程应用实例 java语言是内置对多线程支持的. 为什么使用多线程: 首先线程是操作系统最小的调度单元,多核心.多个线 ...

  6. 《Java程序设计》第四章-认识对象

    20145221<Java程序设计>第四章-认识对象 总结 教材学习内容总结 类与对象 定义:对象是Java语言中重要的组成部分,之前学过的C语言是面向过程的,而Java主要是面向对象的. ...

  7. 《深入理解java虚拟机》读书笔记三——第四章

    第四章 虚拟机性能监控与故障处理工具 1.JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程. 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local ...

  8. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  9. 《Linux内核设计与实现》读书笔记 第四章 进程调度

    第四章进程调度 进程调度程序可看做在可运行太进程之间分配有限的处理器时间资源的内核子系统.调度程序是多任务操作系统的基础.通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的 ...

随机推荐

  1. C语言的结构体的具体作用是?

    在实际问题中,一组数据往往具有不同的数据类型.例如,在学生登记表中,姓名应为字符型:学号可为整型或字符型:年龄应为整型:性别应为字符型:成绩可为整型或实型.显然不能用一个数组来存放这一组数据.因为数组 ...

  2. 如何把word文档内容和图片直接导入到wordpress编辑器

    Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总不能一张一张复制吧?Chrome高版本提供了可以将单张图片转换在BASE64字符串的功能.但是无法 ...

  3. Linux Crontab命令定时任务基本语法

    一.Crontab查看编辑重启 1.查看crontab定时执行任务列表 crontab -l 2.编辑crontab定时执行任务 crontab -e 3.删除crontab定时任务 crontab  ...

  4. 四-3、Mirror(镜像)、Spin(旋转)、创建组

    1.Mirror 1.针对单个器件 2.针对整个模块 2.Spin(旋转)(平时用的比较少) 3.创建组(经常用到)(主要是在布局时,发现后期需要移动整个模组)(创建为group) 1.创建组---- ...

  5. 20180705-Java基础语法

    Java基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条 ...

  6. 对拍 & 随机数生成

    用 Windows 批处理对拍: 1. 新建一个批处理(.bat),代码如下: :loop@echo off data_creator.exe force_solution.exe correct_s ...

  7. datagrid选择一行

    onLoadSuccess:function(value, rec){ $("#sinopec_search_btn").linkbutton('enable'); var dat ...

  8. HDU6424 Rikka with Time Complexity

    HDU6424 Rikka with Time Complexity 数学题~(真的数学题) #include <bits/stdc++.h> #define mp(_,__) make_ ...

  9. fread fwrite文本模式读写回车换行符 自动转换问题

    fread  会把\r\n(0d0a)替换为\nfwrite 会把\n替换为\r\n(0d0a),\r\n会变成\r\r\n(0d0d0a) 今天在写一个日志类,用于打印服务程序的信息. 我将每一个日 ...

  10. Vagrant 手册之 Provisioning - File

    原文地址 Provisioner 名字:"file" Vagrant 的 file provisioner 允许将文件或目录从主机上传到客户机. File provisioning ...