{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
免运费
Yami

Nickname

请告诉我们怎么更好地称呼你

更新你的名字
账户 订单 收藏
{{ inviteNavTitle }}
退出登录

切换配送区域

不同区域的库存和配送时效可能存在差异.

历史邮编

{{email ? __('Got it!') : __('Restock Alert')}}

我们将在商品到货后第一时间通知你。

取消
Yami

京东图书

HotSpot实战

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

HotSpot实战

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
后结束
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
后结束促销
后开始秒杀 后结束秒杀
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) 详情
商品有效期

已下架

当前地址无法配送
已售完

商品描述

展开全部描述
编辑推荐

“蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇蟮之穴无可寄托者,用心躁也”。对于技术人员来说,如果长期忽略自身技术的根基而去一昧地追求高层框架技术,这无疑是舍本求末的做法。
相较于C或C++程序员,我发现Java程序员更容易忽视基础技术。JVM的出现,为程序员屏蔽了操作系统与硬件的细节,使得程序员从诸如内存管理这样的繁琐任务中解放出来。但这不并等同于允许Java程序员放弃对基础的重视。我们是否有过这样的经历,在遇到内存故障、丢包、网络协议设计、资源瓶颈、证书、二进制等问题时,往往会觉得比较棘手,在寻求解决思路时更是显得力不从心。这实质上是自身技术遇到了瓶颈难以突破所致。可怕的是,想去深究的时候却无从下手。
我写这本书的初衷是为了唤起Java程序员对于基础技术的重视。事实上,任何平台的程序员都应当了解平台的基本特性、实现机制以及接口,这是提高自身修养的必经之路。对于Java程序员来说,我们需要了解的平台就是JVM。了解JVM的基本实现机制,不仅对于解决实际应用中诸如GC等虚拟机问题时有直接帮助,还有利于我们更好地理解语言本身。
所幸的是,Oracle官方已经将虚拟机项目的源码开放出来,这对于我们来说简直就是福音。本书将以OpenJDK和HotSpot为素材,深入浅出地讲解我们最为熟悉的一款虚拟机产品的实现。除了Java程序员,从事与Java或JVM相关的开发、测试、运维等技术人员也将在《HotSpot实战》中获益。

内容简介

《HotSpot实战》深入浅出地讲解了HotSpot虚拟机的工作原理,将隐藏在它内部的本质内容逐一呈现在读者面前,包括OpenJDK与HotSpot项目、编译和调试HotSpot的方法、HotSpot内核结构、Launcher、OOP-Klass对象表示系统、链接、运行时数据区、方法区、常量池和常量池Cache、Perf Data、Crash分析方法、转储分析方法、垃圾收集器的设计演进、CMS和G1收集器、栈、JVM对硬件寄存器的利用、栈顶缓存技术、解释器、字节码表、转发表、Stubs、Code Cache、Code生成器、JIT编译器、C1编译器、编译原理、JVM指令集实现、函数的分发机制、VTABLE和ITABLE、异常表、虚拟机监控工具(如jinfo、jstack、jhat、jmap等)的实现原理和开发方法、Attach机制、基于GUI的JVM分析工具(如MAT、VisualVM)等内容。
除了HotSpot技术,《HotSpot实战》还对方法论进行了探讨。在各个章节的讲解中,都会有一些与系统运行机制相关的实战或练习,供读者练手。通过这些实战练习,不仅有助于读者加深对知识或原理的理解,更为重要的是,它还可以培养读者独立探索的思维方式,这有助于读者把知识融会贯通并灵活应用到实际项目中。
《HotSpot实战》适合于已具有一定Java编程基础的读者,以及在Java或基于JVM的编程语言平台下进行各类软件开发的开发人员、测试人员和运维人员。对于JVM和编程语言爱好者来说,《HotSpot实战》也具有一定的学习参考价值。
作者简介

陈涛,硕士,毕业于中国科技大学。现就职于网易公司旗下的网易宝,从事在线支付系统的设计与开发工作。在从事Java工作之前 ,曾有过Linux内核及驱动开发工作经验。热衷于专研技术,对编程语言和JVM比较感兴趣。工作之余 ,喜欢足球和武侠带来的乐趣。目前正在“专研”的课题是如何做一名称职的奶爸。

精彩书评

陈涛是网易宝的核心开发人员之一,同时维护了网易宝的多个系统。网易宝是网易官方的在线支付系统,对开发工程师的技术要求极高。他喜欢专研技术,知识面宽,不仅对Java、C、C++熟悉,对操作系统底层也很熟悉,能够将理论很好地应用于实践中。本书便是他潜心研究和实践的成果。
——赵刚,网易宝系统负责人,资深技术专家


陈涛在Java开发领域知识的深度和广度给我留下了深刻的印象。本书深入浅出地介绍了JVM技术,强调实践应用。对于想深入研究JVM并希望快速取得进展的开发人员来说,本书非常具有实用价值,是Java开发水平更上一层楼的阶石。
——陈双辉,现任通策集团信息事业部CTO,曾在摩托罗拉移动担任Senior PM。

目录

第1章初识HotSpot1
1.1JDK概述2
1.1.1JCP与JSR3
1.1.2JDK的发展历程4
1.1.3Java 7的语法变化7
1.2动手编译虚拟机13
1.2.1源代码下载13
1.2.2HotSpot源代码结构13
1.2.3搭建编译环境15
1.2.4编译目标16
1.2.5编译过程17
1.2.6编译常见问题19
1.3实战:在HotSpot内调试HelloWorld20
1.3.1认识GDB21
1.3.2准备调试脚本22
1.4小结26

第2章启动28
2.1HotSpot内核28
2.1.1如何阅读源代码28
2.1.2HotSpot内核框架36
2.1.3Prims37
2.1.4Services39
2.1.5Runtime43
2.2启动46
2.2.1Launcher46
2.2.2虚拟机生命周期48
2.2.3入口:main函数50
2.2.4主线程51
2.2.5InitializeJVM函数53
2.2.6JNI_CreateJavaVM函数55
2.2.7调用Java主方法56
2.2.8JVM退出路径 56
2.3系统初始化57
2.3.1配置OS模块58
2.3.2配置系统属性60
2.3.3加载系统库61
2.3.4启动线程62
2.3.5vm_init_globals函数:初始化全局数据结构65
2.3.6init_globals函数:初始化全局模块65
2.4小结69

第3章类与对象70
3.1对象表示机制71
3.1.1OOP-Klass二分模型71
3.1.2Oops模块71
3.1.3OOP框架与对象访问机制73
3.1.4Klass与instanceKlass79
3.1.5实战:用HSDB调试HotSpot82
3.2类的状态转换87
3.2.1入口:Class文件87
3.2.2类的状态92
3.2.3加载96
3.2.4链接101
3.2.5初始化104
3.2.6实战:类的“族谱”107
3.2.7实战:系统字典111
3.3创建对象113
3.3.1实例对象的创建流程114
3.3.2实战:探测JVM内部对象116
3.4小结119

第4章运行时数据区120
4.1堆121
4.1.1Java的自动内存管理121
4.1.2堆的管理122
4.2线程私有区域125
4.2.1PC125
4.2.2JVM栈126
4.3方法区126
4.3.1纽带作用127
4.3.2常量池130
4.3.3常量池缓存:ConstantPoolCache133
4.3.4方法的表示:methodOop134
4.3.5方法的解析:将符号引用转换成直接引用138
4.3.6代码放在哪里:ConstMethodOop141
4.3.7实战:探测运行时常量池142
4.4性能监控数据区:Perf Data147
4.4.1描述这段空间:PerfMemory147
4.4.2查看148
4.4.3生产150
4.5转储151
4.5.1用VisualVM进行转储分析151
4.5.2JVM Crash153
4.6小结158

第5章垃圾收集159
5.1堆与GC160
5.1.1垃圾收集160
5.1.2分代收集162
5.1.3快速分配165
5.1.4栈上分配和逸出分析167
5.1.5GC公共模块167
5.2垃圾收集器170
5.2.1设计演进170
5.2.2CMS收集器175
5.2.3G1收集器180
5.3实战:性能分析方法184
5.3.1获取GC日志184
5.3.2GC监控信息187
5.3.3内存分析工具189
5.3.4选择合适的收集器与GC性能评估190
5.3.5不要忽略JVM Crash日志195
5.4小结196

第6章栈197
6.1硬件背景:了解真实机器198
6.1.1程序是如何运行的198
6.1.2x86与栈帧199
6.1.3ARM对Java硬件级加速:Jazelle技术202
6.2Java栈203
6.2.1寄存器式指令集与栈式指令集203
6.2.2HotSpot中的栈204
6.2.3栈帧207
6.2.4充分利用寄存器资源210
6.2.5虚拟机如何调用Java函数212
6.2.6优化:栈顶缓存221
6.2.7实战:操作数栈223
6.3小结228

第7章解释器和即时编译器229
7.1概述230
7.2解释器如何工作231
7.2.1Interpreter模块232
7.2.2Code模块234
7.2.3字节码表235
7.2.4Code Cache236
7.2.5InterpreterCodelet与Stub队列239
7.2.6Code生成器241
7.2.7模板表与转发表244
7.2.8实战:InterpreterCodelet247
7.3即时编译器250
7.3.1概述250
7.3.2编译器模块251
7.3.3编译器的基本结构252
7.3.4实战:编译原理实践,了解编译中间环节255
7.4小结267

第8章指令集268
8.1再说栈式指令集268
8.2数据传送270
8.2.1局部变量、常量池和操作数栈之间的数据传送270
8.2.2数据传送指令272
8.2.3实战:数组的越界检查277
8.3类型转换279
8.4对象的创建和操作281
8.5程序流程控制282
8.5.1控制转移指令282
8.5.2条件转移283
8.5.3无条件转移284
8.5.4复合条件转移285
8.5.5实战:switch语句如何使用String287
8.6运算290
8.6.1加法:iadd290
8.6.2取负:ineg291
8.7函数的调用和返回292
8.7.1Java函数分发机制:VTABLE与ITABLE293
8.7.2invoke系列指令297
8.7.3动态分发:覆盖299
8.7.4静态分发:重载302
8.8异常305
8.8.1异常表305
8.8.2创建异常306
8.8.3try-catch309
8.8.4finally311
8.9小结312

第9章虚拟机监控工具313
9.1Attach机制314
9.1.1AttachProvider与VirtualMachine314
9.1.2命令的下发:execute()317
9.1.3命令的执行:Attach Listener守护线程319
9.2查看JVM进程320
9.2.1用jps查看Java进程320
9.2.2实战:定制jps,允许查看库路径323
9.3查看和配置JVM326
9.3.1用jinfo查看JVM参数配置326
9.3.2实战:扩展flags选项,允许查看命令行参数330
9.4堆内存转储工具332
9.4.1Heap Dump332
9.4.2原理333
9.5堆转储分析337
9.5.1Heap Dump分析工具:jhat337
9.5.2实战:MAT分析过程340
9.6线程转储分析343
9.6.1jstack343
9.6.2实战:如何分析资源等待344
9.7小结347

精彩书摘

3.3.1 实例对象的创建流程
实例的创建过程,首先根据从类常量池中获取对象类型信息并验证类是否已被解析过,若确保该类已被加载和正确解析,使用快速分配(fast allocation)技术为该类分配对象空问;若该类尚未解析过,则只能通过慢速分配(slow allocation)方式分配实例对象。实例的创建流程如图3—30所示。
对象的创建基本流程如下所示。
(1)验证类已被解析。
(2)获取instanceKlass,确保klass已完全初始化。
(3)若满足快速分配条件,则进入快速分配流程。
(4)若不满足快速分配条件,或者快速分配失败,则进入慢速分配流程。
接下来,我们来看一下快速分配与慢速分配的区别和使用场景。
1.快速分配
如果在实例分配之前已经完成了类型的解析,那么分配操作仅仅是在内存空间中划分可用内存,因此能以较高效效率实现内存分配,故称为快速分配。
根据分配空间是来自于线程私有区域还是共享的堆空间,快速分配又可以分为两种空间选择策略。
HotSpot通过线程局部分配缓存技术(即Thread.Local Allocation Buffers,简称TLABs)可以在线程私有区域实现空间的分配。
注意可以通过VM选项UseTLAB来开启或关闭TLAB功能。
根据是否使用TLAB,快速分配方式有两种选择策略。
选择TLAB:首先尝试在TLAB中分配,因为TLAB是线程私有区域,故不需要加锁便能够保证线程安全。在分配一个新的对象空间时,将首先尝试在TLAB空间中分配对象空间,若分配空间的请求失败,则再尝试使用加锁机制在Eden区分配对象。
选择Eden空间:若失败,则尝试在共享的Eden区进行分配,Eden区是所有线程共享区域,需要保证线程安全,故采用原子操作进行分配。若分配失败,则再次尝试该操作,直到分配成功为止。

规格参数

品牌 京东图书
品牌属地 中国
ISBN 9787115343635
著者 陈涛
出版社 人民邮电出版社
印刷时间 2014-03-01
用纸 胶版纸
包装 平装
出版时间 2014-03-01
页数 347
语言 中文
版次 1

免责声明

产品价格、包装、规格等信息如有调整,恕不另行通知。我们尽量做到及时更新产品信息,但请以收到实物为准。使用产品前,请始终阅读产品随附的标签、警告及说明。

查看详情
加入收藏
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
数量
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
由 京东图书 销售
送至
{{ __("Ship to United States only") }}
满$69免运费
正品保证

已加入购物车

继续逛逛

为你推荐

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

优惠券

{{ coupon.coupon_name_new | formatCurrency }}
领取 已领取 已领完
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
即将过期: {{ formatTime(coupon.use_end_time) }}

分享给好友

取消

亚米礼卡专享价

使用礼卡支付即可获得礼卡专享价

规则说明

礼卡专享价是部分商品拥有的特殊优惠价格;

购买礼卡专享价商品时,若在结算时使用电子礼卡抵扣支付,且礼卡余额足够支付订单中所有礼卡专享价商品的专享价总和,则可以启用礼卡专享价;

不使用礼卡支付,或礼卡余额不满足上一条所述要求时,将无法启用礼卡专享价,按照普通售价计算,但您仍然可以购买这些商品;

在购买礼卡专享价商品时,若余额不足,可以在购物车或结算页中点击“充值”按钮对礼卡进行购买和充值;

商品若拥有礼卡专享价,会显示“专享”的特殊价格标记;

如有疑问,请随时联系客服;

礼卡专享价相关规则最终解释权归亚米所有。

由 亚米 销售

服务保障

Yami 满$49免运费
Yami 无忧退换
Yami 从美国发货

配送信息

  • 美国

    标准配送 $5.99(不包含阿拉斯加,夏威夷),最终价满$49免运费

    本地配送$5.99(加州,纽约州,新泽西,麻省和宾夕法尼亚,以上州部分地区);最终价满$49免运费

    两日达(包含阿拉斯加夏威夷)运费$19.99起

退换政策

亚米网希望为我们的客户提供最优秀的售后服务,让所有人都能放心在亚米购物。亚米自营商品在满足退换货条件的情况下,可在收到包裹的30天之内退换商品(食品因商品质量问题7天内可退换;为了确保每位客户都能获得安全和高质量的商品,对于美妆类产品,一经开封或使用即不提供退款或退货服务,质量问题除外;其他特殊商品需联系客服咨询)。
感谢您的理解和支持。

查看详情

由 亚米 销售

亚米电子礼品卡使用规则

若购买时选择自动充值,订单完成后礼卡将自动充值到您的账户中;

若购买时选择发送邮件,订单完成后系统将自动发送卡号和密码到您填写的邮箱;

发送邮件时,任何用户均可使用邮件中的卡号密码进行礼卡充值,请妥善保管邮件信息。

如接收邮件遇到问题,请联系客服处理;

发送邮件时,若礼卡没有被兑换,可以补发邮件。若已经被其他用户兑换,则无法补偿;

亚米网电子礼卡可用于购买自营或第三方商品;

亚米网电子礼卡没有有效期限制,长期有效;

亚米网电子礼卡的金额,可分多次使用;

亚米网电子礼卡业务规则,最终解释权归亚米网所有。

退换政策

已消费的电子礼卡不支持退款。

京东图书 销售

服务保障

Yami 满$49免运费
Yami 最优售后
Yami 美国本土发货

配送信息

  • 美国

    标准配送 $5.99(不包含阿拉斯加,夏威夷),最终价满$49免运费

    本地配送$5.99(加州,纽约州,新泽西,麻省和宾夕法尼亚,以上州部分地区);最终价满$49免运费

    两日达(包含阿拉斯加夏威夷)运费$19.99起

退换政策

提供30天内退还保障。产品需全新未使用原包装内,并附有购买凭据。产品质量问题、或错发漏发等,由商家造成的失误,将进行补发,或退款处理。其它原因需退货费用由客户自行承担。

由 京东图书 销售

服务保障

Yami 跨店满$69免运费
Yami 30天退换保障

亚米-中国集运仓

由亚米从中国精选并集合各大优秀店铺的商品至亚米中国整合中心,合并包裹后将一次合包跨国邮寄至您的地址。跨店铺包邮门槛低至$69。您将在多商家集合提供的广泛选品中选购商品,轻松享受跨店铺包邮后的低邮费。

退换政策

提供30天内退换保障。产品需在全新未使用的原包装内,并附有购买凭据。产品质量问题、错发、或漏发等由商家造成的失误,将进行退款处理。其它原因造成的退换货邮费客户将需要自行承担。由于所有商品均长途跋涉,偶有简易外包压磨等但不涉及内部质量问题者,不予退换。

配送信息

亚米中国集运 Consolidated Shipping 运费$9.99(订单满$69 包邮)

下单后2个工作日中国商家发货,所有包裹抵达亚米中国整合中心(除特别情况及中国境内个别法定节假日外)会合并包裹后通过UPS发往美国。UPS从中国发货后到美国境内的平均时间为10个工作日左右,根据直发单号可随时跟踪查询。受疫情影响,目前物流可能延迟5天左右。包裹需要客人签收。如未签收,客人须承担包裹丢失风险。

由 京东图书 销售

服务保障

满$69免运费
正品保证

配送信息

Yami Consolidated Shipping 运费$9.99(订单满$69包邮)


下单后1-2个工作日内发货。 物流时效预计7-15个工作日。 如遇清关,交货时间将延长3-7天。 最终收货日期以邮政公司信息为准。

积分规则

不参加任何折扣活动以及亚米会员积分制度。

退换政策

提供30天内退还保障。产品需全新未使用原包装内,并附有购买凭据。产品质量问题、或错发漏发等,由商家造成的失误,将进行补发,或退款处理。其它原因需退货费用由客户自行承担。

Yami

下载亚米应用

返回顶部

为你推荐

品牌故事

京东图书

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

评论{{'('+ commentList.posts_count + ')'}}

分享你的感受,帮助更多用户做出选择。

写评论
{{ totalRating }} 写评论
  • {{i}}星

    {{i}}星

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已购买 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已购买 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

暂无符合条件的评论

评论详情

Yami Yami

{{ showTranslate(commentDetails) }}收起

{{ strLimit(commentDetails,800) }}查看全部

Show Original

{{ commentDetails.content }}

Yami
查看更多

{{ formatTime(commentDetails.in_dtm) }} 已购买 {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

请输入内容

回复{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}收起

{{ strLimit(reply,800) }}查看全部

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

请输入内容

取消

End

发表评论
商品评分

请输入评论

  • 一个好的昵称,会让你的评论更受欢迎!
  • 修改了这里的昵称,个人资料中的昵称也将被修改。
感谢你的评论
你的好评可以帮助我们的社区发现更好的亚洲商品。

举报

取消

确认删除该评论吗?

取消

历史浏览

品牌故事

京东图书