成功加入购物车

去购物车结算 X
灵感飞驰
  • 揭秘Java虚拟机:JVM设计原理与实现

揭秘Java虚拟机:JVM设计原理与实现

举报
  • 装帧:    平装
  • 开本:    16开
  • 纸张:    胶版纸
  • 页数:    662页
  • 字数:    99999千字
  • 版次:  1
  • 装帧:  平装
  • 开本:  16开
  • 纸张:  胶版纸
  • 页数:  662页
  • 字数:  99999千字

售价 16.00 1.2折

定价 ¥129.00 

品相 九五品

优惠 满包邮

优惠 满减券
    运费
    本店暂时无法向该地区发货

    延迟发货说明

    时间:
    说明:

    上书时间2024-04-11

    数量
    仅1件在售,欲购从速
    微信扫描下方二维码
    微信扫描打开成功后,点击右上角”...“进行转发

    卖家超过10天未登录

    • 商品详情
    • 店铺评价
    手机购买
    微信扫码访问
    • 商品分类:
      计算机与互联网
      商品描述:
      基本信息
      书名:揭秘Java虚拟机:JVM设计原理与实现
      定价:129.00元
      作者:封亚飞
      出版社:电子工业出版社
      出版日期:2017-06-01
      ISBN:9787121315411
      字数:942000
      页码:662
      版次:1
      装帧:平装
      开本:128开
      商品重量:
      编辑推荐
      Java是一门非常流行的程序语言,但是,Java程序到底是如何运行的?如何写出更高效的Java代码……?这些令人困扰的问题,都可以从本书中找到答案。随着互联网的极速发展,现在的Java 服务端应用需要应对极高的并发访问和大量的数据交互,如果能深入地理解Java虚拟机的核心原理和实现细节,不仅可以帮助程序员自如地应对变化莫测的各类状况,也可以帮助程序员写出高效的代码。《揭秘Java虚拟机:JVM设计原理与实现》正是这样一部修炼Java内功的武学秘笈。它不仅详细阐述了JVM的设计思路与原理,让读者能够深刻理解JVM的运行机制,而且更进一步地分析了JVM在发展过程中每一次技术选择的必然性——这样的分析让读者得以跨越时空,在思想上与前辈大师们产生共鸣,实现精神上的交流,真正领悟JVM的精髓。更为难得的是,看似艰深莫测的“大道理”,却被作者用晓畅明白、幽默有趣的文字层层化解了:本书在阅读体验上毫无枯燥之感,相反,却能让你在“顿悟”的当下,会心而笑,不忍释卷!不必犹豫,无须比较,就是它——《揭秘Java虚拟机:JVM设计原理与实现》!
      内容提要
      《揭秘Java虚拟机:JVM设计原理与实现》从源码角度解读HotSpot的内部实现机制,本书主要包含三大部分——JVM数据结构设计与实现、执行引擎机制及内存分配模型。  数据结构部分包括Java字节码文件格式、常量池解析、字段解析、方法解析。每一部分都给出详细的源码实现分析,例如字段解析一章,从源码层面详细分析了Java字段重排、字段继承等关键机制。再如方法解析一章,给出了Java多态特性在源码层面的实现方式。《揭秘Java虚拟机:JVM设计原理与实现》通过直接对源代码的分析,从根本上梳理和澄清Java领域中的关键概念和机制。  执行引擎部分包括Java方法调用机制、栈帧创建机制、指令集架构与解释器实现机制。这一话题是《揭秘Java虚拟机:JVM设计原理与实现》技术含量高的部分,需要读者具备一定的汇编基础。不过千万不要被“汇编”这个词给吓着,其实在作者看来,汇编相比于高级语言而言,语法非常简单,语义也十分清晰。执行引擎部分重点描述Java源代码如何转换为字节码,又如何从字节码转换为机器指令从而能够被物理CPU所执行的技术实现。同时详细分析了Java函数堆栈的创建全过程,在源码分析的过程中,带领读者从本质上理解到底什么是Java函数堆栈和栈帧,以及栈帧内部的详细结构。  内存分配部分主要包括类型创建与加载、对象实例创建与内存分配,例如new关键字的工作机制,import关键字的作用,再如java.lang.ClassLoader.loadClass()接口的本地实现机制。  《揭秘Java虚拟机:JVM设计原理与实现》并不是简单地分析源码实现,而是在描述HotSpot内部实现机制的同时,分析了HotSpot如此这般实现的技术必然性。读者在阅读《揭秘Java虚拟机:JVM设计原理与实现》的过程中,将会在很多地方看到作者本人的这种思考。
      目录
      章 Java虚拟机概述11.1  从机器语言到Java——詹爷,你好11.2  兼容的选择:一场生产力的革命61.3  中间语言翻译101.3.1  从中间语言翻译到机器码111.3.2  通过C程序翻译111.3.3  直接翻译为机器码131.3.4  本地编译161.4  神奇的指令181.4.1  常见汇编指令201.4.2  JVM指令211.5  本章总结24第2章  Java执行引擎工作原理:方法调用252.1  方法调用262.1.1  真实的机器调用262.1.2  C语言函数调用412.2  JVM的函数调用机制472.3  函数指针532.4  CallStub函数指针定义602.5  _call_stub_entry例程722.6  本章总结115第3章  Java数据结构与面向对象1173.1  从Java算法到数据结构1183.2  数据类型简史1223.3  Java数据结构之偶然性1293.4  Java类型识别1323.4.1  class字节码概述1333.4.2  魔数与JVM内部的int类型1363.4.3  常量池与JVM内部对象模型1373.5  大端与小端1433.5.1  大端和小端的概念1463.5.2  大小端产生的本质原因1483.5.3  大小端验证1493.5.4  大端和小端产生的场景1513.5.5  如何解决字节序反转1543.5.6  大小端问题的避免1563.5.7  JVM对字节码文件的大小端处理1563.6  本章总结159第4章  Java字节码实战1614.1  字节码格式初探1614.1.1  准备测试用例1624.1.2  使用javap命令分析字节码文件1624.1.3  查看字节码二进制1654.2  魔数与版本1664.2.1  魔数1684.2.2  版本号1684.3  常量池1694.3.1  常量池的基本结构1694.3.2  JVM所定义的11种常量1704.3.3  常量池元素的复合结构1704.3.4  常量池的结束位置1724.3.5  常量池元素总数量1724.3.6  个常量池元素1734.3.7  第二个常量池元素1744.3.8  父类常量1744.3.9  变量型常量池元素1754.4  访问标识与继承信息1774.4.1  access_flags1774.4.2  this_class1784.4.3  super_class1794.4.4  interface1794.5  字段信息1804.5.1  fields_count1804.5.2  field_info fields[fields_count]1814.6  方法信息1854.6.1  methods_count1854.6.2  method_info methods[methods_count]1854.7  本章回顾205第5章  常量池解析2065.1  常量池内存分配2085.1.1  常量池内存分配总体链路2095.1.2  内存分配2155.1.3  初始化内存2235.2  oop-klass模型2245.2.1  两模型三维度2255.2.2  体系总览2275.2.3  oop体系2295.2.4  klass体系2315.2.5  handle体系2345.2.6  oop、klass、handle的相互转换2395.3  常量池klass模型(1)2445.3.1  klassKlass实例构建总链路2465.3.2  为klassOop申请内存2495.3.3  klassOop内存清零2535.3.4  初始化mark2535.3.5  初始化klassOop._metadata2585.3.6  初始化klass2595.3.7  自指2605.4  常量池klass模型(2)2615.4.1  constantPoolKlass模型构建2615.4.2  constantPoolOop与klass2645.4.3  klassKlass终结符2675.5  常量池解析2675.5.1  constantPoolOop域初始化2685.5.2  初始化tag2695.5.3  解析常量池元素2715.6  本章总结279第6章  类变量解析2806.1  类变量解析2816.2  偏移量2856.2.1  静态变量偏移量2856.2.2  非静态变量偏移量2876.2.3  Java字段内存分配总结3126.3  从源码看字段继承3196.3.1  字段重排与补白3196.3.2  private字段可被继承吗3256.3.3  使用HSDB验证字段分配与继承3296.3.4  引用类型变量内存分配3386.4  本章总结342第7章  Java栈帧3447.1  entry_point例程生成3457.2  局部变量表创建3527.2.1  constMethod的内存布局3527.2.2  局部变量表空间计算3567.2.3  初始化局部变量区3597.3  堆栈与栈帧3687.3.1  栈帧是什么3687.3.2  硬件对堆栈的支持3877.3.3  栈帧开辟与回收3907.3.4  堆栈大小与多线程3917.4  JVM的栈帧3967.4.1  JVM栈帧与大小确定3967.4.2  栈帧创建3997.4.3  局部变量表4217.5  栈帧深度与slot复用4337.6  操作数栈与操作数栈复用4367.7  本章总结439第8章  类方法解析4408.1  方法解析与校验4458.2  方法属性解析4478.2.1  code属性解析4478.2.2  LVT&LVTT4498.3  创建methodOop4558.4  Java方法属性复制4598.5  <clinit>与<init>4618.6  查看运行时字节码指令4828.7  vtable4898.7.1  多态4898.7.2  C  中的多态与vtable4918.7.3  Java中的多态实现机制4938.7.4  vtable与invokevirtual指令5008.7.5  HSDB查看运行时vtable5028.7.6  miranda方法5058.7.7  vtable特点总结5088.7.8  vtable机制逻辑验证5098.8  本章总结511第9章  执行引擎5139.1  执行引擎概述5149.2  取指5169.2.1  指令长度5199.2.2  JVM的两级取指机制5279.2.3  取指指令放在哪5329.2.4  程序计数器在哪里5349.3  译码5359.3.1  模板表5359.3.2  汇编器5409.3.3  汇编5499.4  栈顶缓存5589.5  栈式指令集5659.6  操作数栈在哪里5769.7  栈帧重叠5819.8  entry_point例程机器指令5869.9  执行引擎实战5889.9.1  一个简单的例子5889.9.2  字节码运行过程分析5909.10  字节码指令实现5979.10.1  iconst_35989.10.2  istore_05999.10.3  iadd6009.11  本章总结6010章  类的生命周期60210.1  类的生命周期概述60210.2  类加载60510.2.1  类加载——镜像类与静态字段61110.2.2  Java主类加载机制61710.2.3  类加载器的加载机制62210.2.4  反射加载机制62310.2.5  import与new指令62410.3  类的初始化62510.4  类加载器62810.4.1  类加载器的定义62810.4.2  系统类加载器与扩展类加载器创建63410.4.3  双亲委派机制与破坏63610.4.4  预加载63810.4.5  引导类加载64010.4.6  加载、链接与延迟加载64110.4.7  父加载器64510.4.8  加载器与类型转换64810.5  类实例分配64910.5.1  栈上分配与逃逸分析65210.5.2  TLAB65510.5.3  指针碰撞与eden区分配65710.5.4  清零65810.5.5  偏向锁65810.5.6  压栈与取指65910.6  本章总结661
      作者介绍
      大学学的是生物技术,但是对计算机保持浓厚兴趣,当年对vb、matlab等语言和工具学的很熟练。毕业后跨界做了软件开发,先后接触了汇编、c、c  、php、asp、java等多种语言,开发过图形库、物联网传感器通信协议、GIS监控定位、电商平台等。进入菜鸟之后,主导结算复杂的业务接入平台化以及业务仿真系统。
      序言

      配送说明

      ...

      相似商品

      为你推荐

    孔网啦啦啦啦啦纺织女工火锅店第三课

    开播时间:09月02日 10:30

    即将开播,去预约
    直播中,去观看