注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计C/C++及其相关计算之道 卷III:C++语言与JVM源码

计算之道 卷III:C++语言与JVM源码

计算之道 卷III:C++语言与JVM源码

定 价:¥119.00

作 者: 黄俊 赖志环
出版社: 清华大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787302683001 出版时间: 2025-05-01 包装: 平装-胶订
开本: 16开 页数: 字数:  

内容简介

  《计算之道卷 Ⅲ:C语言与 JVM 源码》是一本深入探讨计算机科学与技术的图书。本书旨在帮助读者更深入地理解计算机内部的工作原理,并探索从高级编程语言到 JVM 源码等核心概念。本书适合对计算机科学和底层技术感兴趣的读者,无论是学习计算机基础知识还是进一步扩展技术视野,都能从本书中获益良多。在《计算之道卷Ш:C语言与JM 源码》中,作者以清晰易懂的语言详细介绍了高级编程语言的工作原理。通过本书,读者将了解编程语言的特性和原理、计算机网络、JVM 等关键概念,从而更好地理解计算机执行程序的方式。以及将学习JVM 源码,并了解 hotspot、全局模块等底层机制。结合实例和案例研究,读者将能够编写高效、可靠的高性能应用程序。无论是学生、工程师还是对计算机科学感兴趣的读者,本书都将成为你不可或缺的参考资源。

作者简介

  黄俊专注于研究Java语言专注于研究Hotspot专注于研究Linux内核专注于研究C语言与汇编专注于研究架构设计专注于研究多线程并发处理专注于研究高效学习方式曾就职于美团、阿里前新东方业务架构师赖志环十年游戏及互联网应用的技术研发经历。负责过5000以上注册用户,日活跃用户达800万,10万多用户同时在线,年流水达1亿的游戏产品研发。熟悉技术研发的多重领域。自2016年至今创办深圳帝国互娱网络在线有限公司,联合创始人负责技术部。

图书目录

第1 章 C 语言的推理 1
1.1 编程语言演变过程 1
1.2 C 语言出现的原因 3
1.2.1 C 语言图书管理系统 4
1.2.2 C 语言的出现原因 5
1.2.3 C 语言图书管理系统 7
1.3 面向过程和面向对象 8
1.4 C 语言特性来源 11
1.5 其他编程语言原理推导 12
1.6 编程语言的共性 13
1.7 小结 15
第2 章 C 语言的特性和原理 17
2.1 对象和类原理 17
2.1.1 C 语言的class 关键字 19
2.1.2 C 语言的new/delete运算符 19
2.1.3 C 语言的this 指针 22
2.2 异常处理 23
2.2.1 C 语言异常处理 23
2.2.2 Java 异常处理 24
2.3 C 语言的特性 26
2.3.1 C 语言的hello world 26
2.3.2 C 语言的数据类型 27
2.3.3 C 语言的指针和引用 28
2.3.4 C 语言的类与对象 29
2.3.5 C 语言的多态 31
2.3.6 C 语言的泛型编程 32
2.4 汇编、C 和C 语言存在的问题 35
2.4.1 汇编语言 35
2.4.2 C 语言 36
2.4.3 C 语言 37
2.4.4 最常见的问题 38
2.5 Java 语言出现的推论 40
2.5.1 内存泄漏和野指针规避 40
2.5.2 新语言的设计要求 42
2.5.3 新语言的两种实现方法 43
2.6 如何通过底层来学习不同的编程语言 45
2.7 小结 48
第3 章 计算机网络推理 50
3.1 计算机网络的研究内容 50
3.2 计算机网络协议 52
3.2.1 什么是协议 52
3.2.2 谁来制定协议 53
3.2.3 协议分层 54
3.3 计算机网络地址 56
3.3.1 MAC 地址 56
3.3.2 IP 地址 58
3.3.3 ARP 59
3.4 数据传输 61
3.5 计算机网络下三层 61
3.6 小结 62
第4 章 传输协议原理 64
4.1 UDP 65
4.1.1 四元组 65
4.1.2 UDP 的特点 66
4.1.3 UDP 的使用场景 66
4.2 TCP 68
4.2.1 TCP 包头部分 68
4.2.2 建立TCP 链接 69
4.2.3 释放TCP 连接 71
4.2.4 TCP 状态机 73
4.3 TCP 可靠传输重传机制 75
4.4 TCP 可靠传输—滑动窗口 82
4.5 TCP 可靠传输—流量控制 85
4.6 TCP 可靠传输—拥塞控制 86
4.6.1 TCP 的拥塞控制原理 87
4.6.2 拥塞控制的算法 88
4.7 TCP 和UDP 的区别 92
4.8 小结 93
第5 章 Linux 网络包处理源码分析 94
5.1 Linux 网络收包的总体流程 96
5.2 Linux 启动的网络准备 98
5.2.1 网卡e100 驱动初始化 99
5.2.2 启动网卡e100 105
5.2.3 网卡e100 网络数据发送队列初始化 107
5.2.4 网卡e100 网络数据接收队列初始化 109
5.2.5 网卡e100 的中断处理 112
5.2.6 开启硬中断 113
5.2.7 软中断ksoftirqd 内核线程 114
5.2.8 网络子系统初始化 121
5.2.9 协议栈注册 123
5.3 Linux 接收网络数据 129
5.3.1 e100 对网络数据包的存储 130
5.3.2 硬中断处理 131
5.3.3 软中断处理 132
5.3.4 网络层IP 协议栈处理 143
5.3.5 传输层UDP 协议栈处理 152
5.4 网络消息最终归途 159
5.4.1 激活用户进程 159
5.4.2 recvfrom 系统调用 167
5.4.3 Socket 数据结构 170
5.4.4 socket 创建 171
5.5 小结 179
第6 章 应用层协议原理 181
6.1 HTTP 协议 181
6.1.1 DNS 解析 182
6.1.2 发送HTTP 请求 183
6.1.3 HTTP 请求的响应 184
6.1.4 浏览器解析 185
6.1.5 浏览器进行页面渲染 186
6.1.6 一次完整的HTTP 请求小结 187
6.2 扫码支付背后那些事 188
6.2.1 扫码支付的工作流程 189
6.2.2 扫码支付如何保证交易安全 189
6.2.3 HTTPS 协议 191
6.2.4 Https 协议建立连接 194
6.3 直播使用的流媒体协议 197
6.3.1 直播的技术组成部分 197
6.3.2 直播的核心技术 197
6.4 小结 199
第7 章 Java Hello World 底层推理 201
7.1 回顾C 语言的Hello World 201
7.1.1 Hello World 在Linux 平台编译执行过程 202
7.1.2 hello.c 程序编译过程 202
7.1.3 hello.out 可执行文件格式及内存映像 203
7.1.4 hello.out 程序装载和执行的过程 203
7.1.5 入口函数和程序初始化 205
7.1.6 Windows 操作系统的hello.c 206
7.1.7 C 语言的平台关联性 207
7.2 Java 的HelloWorld 208
7.3 Hello World 的运行 211
7.4 HelloWorld 的字节码文件结构 213
7.5 执行HelloWorld 的main 方法前的过程 217
7.6 HelloWorld 的main 方法的执行过程 221
7.6.1 JVM 的执行引擎 221
7.6.2 JVM 的GC 222
7.7 《JVM 规范手册》 223
7.8 小结 224
第8 章 Hotspot JVM 启动原理 226
8.1 启动Hotspot VM 227
8.1.1 main()函数 228
8.1.2 JLI_Launch()函数 229
8.1.3 JVMInit()函数 232
8.1.4 ContinueInNewThread()函数 232
8.1.5 ContinueInNewThread0()函数 233
8.1.6 JavaMain()函数 234
8.2 类加载器 235
8.2.1 Bootstrap ClassLoader 类加载器 236
8.2.2 三层类加载器 239
8.2.3 双亲委派模型 244
8.3 Hotspot CreateVM 245
8.3.1 初始化系统属性及SystemProperites 247
8.3.2 给JVM 的主干添加枝叶——程序参数解释 250
8.3.3 线程安全点 255
8.3.4 初始化全局线程队列及vm_init_globals 257
8.3.5 JavaThread 257
8.4 初始化全局模块init_globals 258
8.4.1 JVM 解释器模块 261
8.4.2 代码高速缓存模块 265
8.4.5 universe_init 267
8.4.3 StubRountines 272
8.4.6 marksweep_init 275
8.5 小结 276

本目录推荐