基本信息 Information

程序员炼成记:从小白到工程师

丛书名

作者周明耀

版次1

书号29893

ISBN9787301298930

字数939千字

开本16

页数560

出版年2018

定价¥99

了解这份职业 001
1.1 写在前面 002
1.2 入行前 002
1.2.1 对于ACM国际大学生程序设计竞赛的理解 002
1.2.2 参加校招 003
1.3 入行后 004
1.3.1 深度思考 004
1.3.2 工作时间 004
1.3.3 公司的选择 005
1.3.4 为什么软件基础设施技术人员话语权不高 005
1.3.5 为什么去做高难度的技术 005
1.3.6 技术人员的上升通道 006
1.3.7 跟进最新技术的重要性 006
1.4 自勉 007
 学习准备 008
2.1 软件安装 009
2.1.1 JDK安装 009
2.1.2 Eclipse安装与卸载 013
2.1.3 Eclipse快捷键介绍 017
2.1.4 虚拟机安装 020
2.2 数据结构 027
2.2.1 算法简介 027
2.2.2 数据类型简介 029
2.2.3 面向对象程序设计 029
2.2.4 算法效能分析 030
2.2.5 线性表 032
2.2.6 链表 033
2.2.7 堆栈 067
2.2.8 算术表达式的求值法 075
2.2.9 队列 078
2.3 难题解释 091
2.3.1 两个数字相加 091
2.3.2 寻找两个数组的中间数 093
2.3.3 查找字符串中最长非重复的子字符串 097
2.3.4 合并两个链表 098
2.3.5 汉诺塔问题 099
2.3.6 迷宫问题 105
2.3.7 八皇后问题 110
 Java基础知识 114
3.1 switch关键字 115
3.1.1 Java 6中的使用方式 115
3.1.2 Java 7中的使用方式 116
3.1.3 新特性的优缺点 118
3.2 设计模式之单例模式 119
3.2.1 引言 119
3.2.2 详细介绍 119
3.3 设计模式之代理模式 125
3.3.1 引言 125
3.3.2 延迟加载 126
3.4 设计模式之适配器模式 132
3.4.1 引言 132
3.4.2 详细介绍 132
3.4.3 适配器模式在开源项目中的应用 137
3.4.4 适配器模式的使用 145
3.5 字符串操作优化 146
3.5.1 字符串对象 146
3.5.2 SubString使用技巧 147
3.5.3 切分字符串 148
3.5.4 合并字符串 150
3.6 数据定义和运算逻辑优化 154
3.6.1 使用局部变量 154
3.6.2 位运算代替乘除法 154
3.6.3 替换switch 155
3.6.4 一维数组代替二维数组 156
3.6.5 提取表达式 158
3.6.6 优化循环 159
3.6.7 布尔运算代替位运算 160
3.6.8 使用arraycopy() 162
3.7 Java I/O相关知识 163
3.7.1 Java I/O 163
3.7.2 Java NIO 164
3.7.3 Java AIO 174
3.8 数据复用 178
3.8.1 缓冲区 178
3.8.2 缓存 184
3.8.3 对象复用池 185
3.8.4 计算方式转换 187
3.9 集合类优化 189
3.9.1 集合类之间关系 189
3.9.2 集合接口 190
3.9.3 集合类介绍 192
3.9.4 集合类实践 194
3.10  Java 8迭代器模型 202
3.10.1 迭代器模式 202
3.10.2 Lambda表达式 204
3.10.3 Java 8全新集合遍历方式 204
3.11  Java 9入门 209
3.11.1 模块化编程 209
3.11.2 模块化系统目标 211
3.11.3 模块化的JDK 212
3.11.4 模块资源介绍 212
3.11.5 HelloWorld案例 213
3.12  常见面试题 214
 Java深度知识 222
4.1 JVM内存区域 223
4.1.1 程序计数器 224
4.1.2 虚拟机栈 224
4.1.3 本地方法栈 228
4.1.4 Java堆 229
4.1.5 方法区 234
4.2 JVM为什么需要GC 235
4.2.1 JVM发展历史简介 235
4.2.2 GC发展历史简介 236
4.2.3 G1 GC基本思想  237
4.2.4 G1 GC垃圾回收机制  237
4.2.5 G1的区间设计灵感 238
4.3 如何使用SA工具 239
4.4 死锁及处理方式 246
4.4.1 死锁描述 246
4.4.2 死锁情况诊断 251
4.4.3 死锁解决方案 254
4.5 JavaCPP技术 256
4.5.1 JavaCPP示例 257
4.5.2 JavaCPP-presets简介 259
4.5.3 JavaCPP-presets示例 261
4.5.4 JavaCPP性能测试 270
4.6 Java 8解决的若干问题 271
4.6.1 HashMap 271
4.6.2 行为参数化 273
4.6.3 读取文件 276
4.6.4 Stream 277
4.7 JDK 8与G1 GC实践 291
4.7.1 基础解释 291
4.7.2 G1 GC参数讲解 292
4.8 Java的优化方向 303
4.8.1 Java EE 303
4.8.2 函数式语言 305
4.8.3 VM启动时间优化 307
4.8.4 JIT编译器 308
4.9 代码规范深度解读 308
4.9.1 下画线或美元符号 309
4.9.2 拼音与英文混合 309
4.9.3 类命名 309
4.9.4 方法名、参数名和变量名 310
4.9.5 常量命名 312
4.9.6 抽象类的命名 312
4.9.7 避免常量魔法值的使用 312
4.9.8 变量值范围 313
4.9.9 大括号的使用规定 313
4.9.10 单行字符数限制 314
4.9.11 静态变量及方法调用 315
4.9.12 可变参数编程 316
4.9.13 单元测试应该自动执行 318
4.9.14 单元测试应该是独立的 318
4.9.15 BCDE原则 318
4.9.16 数据类型精度考量 319
4.9.17 使用Char 321
 Spring相关知识 323
5.1 Spring Boot 324
5.1.1 初始Spring Boot 324
5.1.2 Spring Boot示例 337
5.1.3 Spring Boot创建Restful API示例 341
5.1.4 Spring Boot使用JavaMailSender发送邮件 344
5.1.5 Spring Boot 1.5.x新特性 347
5.2 Spring Cloud 349
5.2.1 Spring Cloud简介 349
5.2.2 Spring Cloud Eureka 350
5.2.3 Spring Cloud Consul 353
5.2.4 分布式配置中心 354
5.3 Spring中的设计模式 358
5.3.1 解释器设计模式 358
5.3.2 构造器设计模式 358
5.3.3 工厂方法设计模式 362
5.3.4 抽象工厂设计模式 364
5.3.5 代理设计模式 366
5.3.6 策略设计模式 368
5.3.7 模板设计模式 370
 数据库知识 374
6.1 关系型数据库和NoSQL数据库 375
6.1.1 关系型数据库 375
6.1.2 NoSQL数据库 378
6.2 PostgreSQL相关知识 380
6.2.1 基本操作 380
6.2.2 系统视图表 381
6.2.3 索引 384
6.2.4 查询计划 388
6.3 Cassandra相关知识 393
6.3.1 基本介绍 393
6.3.2 数据模型 393
6.3.3 关键特性 394
6.3.4 访问服务端 397
6.3.5 无中心化实现因素 403
6.3.6 性能测试工具 408
 高端技术汇总 411
7.1 分布式系统 412
7.1.1 店长负责制 412
7.1.2 订单处理方式 414
7.1.3 员工角色拆分 415
7.1.4 多个任务接收 416
7.1.5 订单处理过程上屏 416
7.1.6 异常数据干扰 417
7.1.7 座位设计模式 418
7.2 选举算法的机制 419
7.2.1 最简单的选举算法 419
7.2.2 拜占庭问题 420
7.2.3 Paxos算法 422
7.2.4 ZAB协议 424

版权所有 © 北京大学出版社 北京大学音像出版社

京ICP备09072562号-1 京公网安备 11010802024978号 出版物经营许可证新出发京批字第版0160