1.初步认识JVM -- JVM序列
1.JVM概念
JVM是java Virtual Machine的简称。也称为Java虚拟机。
虚拟机:通过软件模拟具有完整硬件功能的运行在一个完全隔离环境的完整计算机系统。VMWare、Visual Box、JVM
VMWare、Visual Box 都是模拟物理CPU的指令集。而JVM是软件模拟Java字节码的指令集
2.JVM发展历史
96年SUN JDK 1.0 class VMWare、Visual
97年JDK 1.1:具有AWT、内部类、JDBC、RMI、反射
98年JDK 1.2:有JIT解析器、精确内存管理、提升GC性能
2000年JDK 1.3:Hotspot发布默认的虚拟机
2002年JDK 1.4:VM退出
2004年JDK 1.5:具有泛型、注解、装箱、枚举、可变长的参数、foreach循环等
JDK 1.6:具有脚本语言支持、JDBC 4.0
JDK 1.7:延时推出,G1,动态语言增强、64位系统中的压缩指针、NIO 2.0
2014 JDK 1.8:lambda表达式、语法增强、java类型增强
2016 JDK1.9:模块化
3.JVM种类
KVM:用于手机系统;
Hotspot:设备上建立统一的JAVA的接口
IBM J9 VM:IBM内部使用
apache harmony:兼容JDK1.5和JDK1.6
Hotspot、JRockit,JRockit优点移植到Hotspot,会逐渐放弃JRockit。
4.JAVA语言规范
主要在于:语法、变量、类型、文法的定义。什么是java语言。
5.JVM规范
class文件类型、运行时数据、帧栈、虚拟机启动以及其指令集。什么是JVM。
java和JVM是相对独立的
只要符合JVM规范的就可以运行在JVM上,比如scala跟java规范是不一样的但是都可以运行在JVM上。
二进制: 00000101
原码: 00000101 10000101 //0为正数,1为负数
反码: 01111010 11111010 //原码基础上符号位不变,其他位取反
补码: 01111011 11111011 //在反码基础上符号位不变加1
注意:使用补码可以直接相加减加快计算提升性能。符号位参与计算。
IEEE 754 :s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmmm
e全0附加位为0,负责为1;
s*m*2^(e-127)
JVM需要对Java library提供一下支持:
反射、类装载、初始化类以及接口、安全相关、多线程、弱引用。
JVM的编译
反编译看源码(这里不做介绍)
标注:本文是经由本人学习炼数成金JVM课程的笔记。
1.初步认识JVM -- JVM序列的更多相关文章
- 深入理解JVM—JVM内存模型
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等 ...
- JVM—JVM内存模型
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等 ...
- 【转】深入理解JVM—JVM内存模型
http://www.cnblogs.com/dingyingsi/p/3760447.html#3497199 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU ...
- JVM | JVM的核心技术
说到JVM,很多工作多年的老铁,可能就有点发憷了,因为搬砖多年,一直使用java这个工具,对于JVM没有了解过,有句话面试造航母,上班拧螺丝,要啥自行车啊,知道如何搬砖就可以了,为啥要懂这么多,如果你 ...
- (转)深入理解JVM—JVM内存模型
原文地址:http://www.cnblogs.com/dingyingsi/p/3760447.html 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互 ...
- 理解JVM——JVM的结构
这是理解JVM的第一篇文章,这篇文章主要介绍JVM的总体结构和每一个部分的功能.内容比较少,对于每一个部分详细的内容,放到后面的文章中,逐步展开.这个系列总结完,应该会对JVM有一个整体且深入的认识了 ...
- [jvm] JVM体系结构
一.jvm 运行时数据区域 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 直接内存(非JVM区域) 二.深入探讨HotSpot虚拟机在Java堆中对象分配.布局和访问的全 ...
- JVM | JVM体系结构认知
虚拟机 何为虚拟机呢?虚拟机是模拟执行某种指令集体系结构(ISA)的软件,是对操作系统和硬件的一种抽象.其软件模型如下图所示: 计算机系统的这种抽象类似于面向对象编程(OOP)中的针对接口编程泛型(或 ...
- JVM: JVM 内存划分
概述 如果在大学里学过或者在工作中使用过 C 或者 C++ 的读者一定会发现这两门语言的内存管理机制与 Java 的不同.在使用 C 或者 C++ 编程时,程序员需要手动的去管理和维护内存,就是说需要 ...
随机推荐
- Ubuntu 建立桌面快捷方式
非常多时候,在Ubuntu下软件能够通过命令安装.可是有时候比較方便的方法就是下载一个压缩包,解压就能够使用了. 可是每次使用都要先跳到解压文件夹.这就比較麻烦.所以能够通过创建桌面快捷方式来解决问题 ...
- 工欲善其事 之 Web 前端调试工具格式化混淆过的 JS 代码
工欲善其事 之 Web 前端调试工具格式化混淆过的 JS 代码 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&q ...
- Access数据操作-01
1.未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 在菜单 “项目”的最下面 工程属性 菜单,选择“生成”选项卡,将目标平台由“Amy CPU”或者“*64”改成“* ...
- 端口占用处理(Windows)
1. netstat -ano 看看 443端口被占用没 ,一般是本地地址加上端口号,那个端口号就是你要找的,同时最后一列是PID,即进程号. (常用的软件有虚拟机.VisualSVNServer)2 ...
- 微信小程序实现文字跑马灯
wxml: <view>1 显示完后再显示</view> <view class="example"> <view class=" ...
- iOS - 布局重绘机制相关方法的研究
iOS View布局重绘机制相关方法 布局 - (void)layoutSubviews - (void)layoutIfNeeded- (void)setNeedsLayout —————————— ...
- JavaIO再回顾
File类 JavaIO访问文件名和文件检测相关操作 分隔符最好是使用File类提供的File.separator,使程序更加的健壮. File类提供的方法基本上是见名知意,例如getName()就是 ...
- WCF学习 (三)深入认识WCF契约
什么是契约? 从SOA概念上讲,契约属于服务公开接口的一部分.一个服务契约,定义了服务端公开的服务方法,使用传输协议,可访问地址,传输的消息格式等内容.换句话说:契约描述了该服务的功能和作用,它告诉S ...
- Python - 3.6 学习四
错误.调试和测试 程序运行中,可能会遇到BUG.用户输入异常数据以及其它环境的异常,这些都需要程序猿进行处理.Python提供了一套内置的异常处理机制,供程序猿使用,同时PDB提供了调试代码的功能,除 ...
- SQL中 decode()函数简介(转载)
今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即 ...