周志明的《深入理解JAVA虚拟机》中基于栈的指令集和基于寄存器的指令集,要好好学习

这个知识点是我以前没有的,所以我以前发贴表示完全不理解JAR字节码的执行过程及以本地代码交互的过程。

现在有了这个知识点。

那对JVM的运行机制就了解了大概了。

周志明的《深入理解JAVA虚拟机》这书是本好书呀。

但由于我个人阅读习惯,三天之内要草草看一次的。所以没有按书上代码操作。

以后工作如何有应用时,再慢慢深入吧。

~~~~~~~~~~~~~~~

NET CLR 和 Java VM 都是堆疊式虛擬機器(Stack-Based VM),也就是說,它們的指令集(Instruction Set)都是採用堆疊運算的方式:執行時的資料都是先放在堆疊中,再進行運算。Java  VM 有約 200 個指令(Instruction),每個指令都是 1 byte 的 opcode(操作碼),後面接不等數目的參數;.NET CLR 有超過 220個指令,但是有些指令使用相同的 opcode,所以 opcode 的數目比指令數略少。特別注意,.NET 的 opcode 長度並不固定,大部分的 opcode長度是 1 byte,少部分是 2 byte。

            -----------蔡学镛

~~~~~~~~~~~~~~~

这正如我上周上上周看那本陆嘉恒的《实战HADOOP》一样。通过HADOOP的源码概述,HDFS,MAPREDUCE实现过程和HIVE,HBASE,ZOOKEEPER,PIG...之类的应用,先在心里搭起HADOOP在IT世界的定位。在正确定位的基础上,来理解各个HADOOP的长处和短处,及其发展和存在的价值,也就顺理成章了。

剑走偏锋的理解是:WINDOWS,MACOS,LINUX可作为驱动,JVM作为操作系统,HDFS作为文件系统,MAPREDUCE作为系统API,HBASE类似于数据库系统(MYSQL,MS SQL不都是以NTFS,EXT3上的文件形式存在的么?)。ZOOKEEPER类似性能监控计数器,HIVE类似于标准SQL语言。。。。那这样理解下来,HADOOP类似于ORACLE???同类对比WINDOWS上的OFFCE套装?

时间: 2024-08-03 20:06:55

周志明的《深入理解JAVA虚拟机》中基于栈的指令集和基于寄存器的指令集,要好好学习的相关文章

深入理解Java虚拟机:JVM高级特性与最佳实践

目 录 [ - ] <深入理解Java虚拟机:JVM高级特性与最佳实践>前言 <深入理解Java虚拟机:JVM高级特性与最佳实践>内容特色 <深入理解Java虚拟机:JVM高级特性与最佳实践>目录 第1章 走近Java 1.1 概述 1.2 Java技术体系 1.3 Java发展史 1.4 展望Java技术的未来 1.4.1 模块化 1.4.2 混合语言 1.4.3 多核并行 1.4.4 进一步丰富语法 1.4.5 64位虚拟机 1.5 实战:自己编译JDK 1.5.1

java-《深入理解Java虚拟机》有关methodHandle的代码问题?

问题描述 <深入理解Java虚拟机>有关methodHandle的代码问题? 以下代码书上说是输出"i am grandfather",但远行实际输出为"i am father" class Test { class GrandFather { void thinking() { System.out.println("i am grandfather"); } } class Father extends GrandFather {

《深入理解Java虚拟机》读书笔记

背景 并发处理的广泛应用是使得Amdahl定律代替摩尔定律成为计算机性能发展的源动力的根本原因,也是人类压榨计算机运算能力最有力的武器 Amdahl 定律通过系统中的并行化与串行化的比重来描述多处理器系统能获得的运算加速能力. 摩尔定律则用于描述处理器晶体管数量与运行效率之间的发展关系. 这两个定律的更替代表了近年来硬件发展从追求处理器频率到追求多核心并行处理的发展过程. 高效并发 物理机上的并发解决方案 在当前这个多核处理器时代,"让计算机并发执行若干个运算任务"和"更充分

《深入理解Java虚拟机》学习笔记

自动内存管理机制 第2章 垃圾收集器与内存分配策略 1.Java虚拟机在执行java程序时会把它所管理的内存会分为若干个不同的数据区域, 这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在, 有些区域则是在以来用户线程的启动和结束而建立和销毁. 根据<Java虚拟机规范>,包括以下几个运行时数据区域: //此处应有类图,但是画起来太麻烦! 程序计数器(Program Counter Register) 方法区(Method Area) 虚拟机栈(VM Stack)

理解Java虚拟机体系结构(转)

1 概述 众所周知,Java支持平台无关性.安全性和网络移动性.而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么.正是得益于Java虚拟机,它号称的"一次编译,到处运行"才能有所保障. 1.1 Java程序执行流程 Java程序的执行依赖于编译环境和运行环境.源码代码转变成可执行的机器代码,由下面的流程完成: Java技术的核心就是Java虚拟机,因为所有的Java程序都在虚拟机上运行.Java程序的运行需要Java

深入理解JAVA虚拟机--Idea远程执行本地Java代码

工程配置 上传文件配置 运行结果 源代码 联系作者 今天在看深入理解JAVA虚拟机的9.3节,作者实现了一个远程执行功能.这个功能可以在远程服务器中临时执行一段程序代码,而去不依赖jdk版本,不改变原有服务端程序的部署,不依赖任何第三方库,不入侵原有的程序,不会对原有程序运行带来任何影响.程序的原理可以去看书,本文主要结合IDEA把使用过程记录一下 工程配置 新建一个工程,把书中的5个类倒入,然后写一个测试类(test),这个类的代码就是要让远程服务器自动执行的.test.jsp是用来触发远程服

深入理解java虚拟机的故障处理工具_java

前言 本文主要给大家介绍的是java虚拟机的故障处理工具,文中提到这些工具包括: 名称 主要作用 jps JVM process Status Tool, 显示指定系统内所有的HotSpot虚拟机进程.通常是本地主机 jstat JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据 jinfo Configuration Info for java, 显示虚拟机配置信息 jmap Memory Map for Java, 生成虚拟机的内存存储

Java转行之路—《深入理解JAVA虚拟机总结》(一)

Java转行之路-<深入理解JAVA虚拟机总结>(一) Java虚拟机运行时数据区 程序计数器(Program Counter Register) (1)Little Space (2)当前所执行字节码的行号指示器(3)每条线程都有独立的程序计数器--线程切换后回到正确的位置ps.多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的 虚拟机栈(Virtual Machine Stacks) (1) 线程私有,生命周期与线程相同(2) 原理图(3) 线程请求栈的深度大于虚拟机所允许的深度,

转《深入理解Java虚拟机》学习笔记之最后总结

编译器 Java是编译型语言,按照编译的时期不同,编译器可分为: 前端编译器:其实叫编译器的前端更合适些,它把*.java文件转变成*.class文件,如Sun的Javac.Eclipse JDT中的增量式编译器ECJ: JIT编译器:虚拟机的后端运行期编译器(Just In Time Compiler),它把字节码转变成机器码,如HotSpot VMd C1.C2编译器: AOT编译器:静态提前编译器(Ahead Of Time Compiler),它直接把*.java文件编译成本地机器码,如