• 内容介绍
  • 第一章 java系统优化
  • 第二章 字符串和数字
  • 2.1 构造字符串
  • 2.2 字符串拼接
  • 2.3 字符串格式化
  • 2.4 字符串查找
  • 2.6 intern方法
  • 2.7 StringUtils类
  • 2.8 前缀树过滤
  • 2.9 数字装箱
  • 2.10 BigDecimal
  • 第三章 并发和异步编程
  • 3.1 不安全的代码
  • 3.2 Java并发编程
  • 3.2.1 volatile
  • 3.2.2 synchronized
  • 3.2.3 Lock
  • 3.2.4 Condition
  • 3.2.5 读写锁
  • 3.2.6 semaphore
  • 3.2.7 栅栏
  • 3.3 Java并发工具
  • 3.3.1 原子变量
  • 3.3.2 Queue
  • 3.3.3 Future
  • 3.4 Java线程池
  • 3.5 异步编程
  • 3.5.1 创建异步任务
  • 3.5.2 完成时回调
  • 3.5.3 串行执行
  • 3.5.4 并行执行
  • 3.5.5 接收任务处理结果
  • 第四章 代码性能优化
  • 4.1 int 转 String
  • 4.2 使用Native 方法
  • 4.3 日期格式化
  • 4.4 switch 优化
  • 4.5 优先用局部变量
  • 4.6 预处理
  • 4.7 预分配
  • 4.8 预编译
  • 4.9 预先编码
  • 4.10 谨慎使用Exception
  • 4.11 批处理
  • 4.12 展开循环
  • 4.13 静态方法调用
  • 4.14 高速Map存取
  • 4.15 位运算
  • 4.16 反射
  • 4.17 压缩
  • 4.18 可变数组
  • 4.19 System.nanoTime()
  • 4.20 ThreadLocalRandom
  • 4.22 错误优化策略
  • 4.22.1 final无法帮助内联
  • 4.22.2 subString 内存泄露
  • 4.22.3 循环优化
  • 4.22.4 循环中捕捉异常
  • 第五章 高性能工具
  • 第六章 Java注释
  • 6.1 JavaDoc
  • 6.2 Tag
  • 6.2.1 {@link}
  • 6.2.2 @deprecated
  • 6.2.3 {@literal}
  • 6.2.4 {@code}
  • 6.2.5 {@value}
  • 6.2.6 @author
  • 6.2.7 @param 和 @return
  • 6.2.8 @throws
  • 6.2.9 @see
  • 6.2.10 自动拷贝
  • 6.3 Package-Info
  • 6.4 HTML生成
  • 6.5 Markdown-doclet
  • 第七章 可读性代码
  • 7.1 精简注释
  • 7.2 变量
  • 7.2.1 变量命名
  • 7.2.2 变量的位置
  • 7.2.3 中间变量
  • 7.3 方法
  • 7.3 .1 方法签名
  • 7.3.2 小方法
  • 7.3.3 单一职责
  • 7.3.3 小类
  • 7.4 分支
  • 7.4.1 if else
  • 7.4.2 switch case
  • 7.5 发现对象
  • 7.3.1 不要用String
  • 7.3.2 不要用数组,Map
  • 7.6 checked异常
  • 7.7 其他
  • 7.7.1 避免自动格式化
  • 7.7.2 关于Null
  • 第八章 JIT优化
  • 8.1 解释和编译
  • 8.2 C1和C2
  • 8.3 代码缓存
  • 8.4 JITWatch
  • 8.5 内联
  • 8.6 虚方法调用
  • 第九章 自测
  • 9.1 ConcurrentHashMap陷阱
  • 9.2 字符串搜索
  • 9.3 IO输出
  • 9.4 字符串拼接
  • 9.5 方法的入参和出参
  • 9.6 RPC调用定义的返回值
  • 9.7 Integer使用
  • 9.8 排序
  • 9.9 判断特殊的ID
  • 9.10 优化if结构
  • 9.11 文件COPY
  • 9.12 siwtch优化
  • 9.13 Encoder
  • 9.14一个JMH例子
  • 9.15 注释
  • 9.16 完善注释
  • 9.17 方法抽取
  • 9.18 遍历Map
  • 9.19 日期格式化
  • 9.20 日志框架设计的问题
  • 9.21 持久化到数据库
  • 9.22 某个RPC框架
  • 9.23 循环调用
  • 9.24 Lock使用
  • 9.25 字符集
  • 9.26 处理枚举值
  • 9.27 任务执行
  • 9.28 开关判断
  • 9.29 JDBC操作
  • 9.30 Controller代码
  • 9.31 停止任务
  • 9.32 log框架
  • 第十章 ASM运行时增强
  • 10.1 Java字节码
  • 10.1.1 基础知识
  • 10.1.2 class文件格式
  • 10.2 Java方法的执行
  • 10.2.1 方法在内存的表示
  • 10.2.3 方法在class文件中的表示
  • 10.2.3 指令的分类
  • 10.2.4 操作数栈的变化分析
  • 10.3 Bytecode Outline插件
  • 10.4 ASM入门
  • 10.4.1 生成类名及构造函数
  • 10.4.2 生成main方法
  • 10.4.3 调用生成的代码
  • 10.5 ASM增强代码
  • 10.5.1 使用反射实现
  • 10.5.2 使用ASM生成辅助类
  • 10.5.3 switch语句的分类
  • 10.5.4 获取bean中的property
  • 10.5.5 switch语句的实现
  • 10.5.6 性能对比
  • 第十一章 JSR269编译时增强
  • 11.1 Java编译的过程
  • 11.2 注解处理器入门
  • 11.3 相关概念介绍
  • 11.3.1 AbstractProcessor
  • 11.3.2 Element与TypeMirror
  • 11.4 注解处理器进阶
  • 11.4.1 JsonWriter注解
  • 11.4.2 处理器与生成辅助类
  • 11.4.3 使用生成的Mapper类
  • 11.4.4 注解处理器的使用
  • 11.5 调试注解处理器
  • 11.5.1 Eclipse中调试注解处理器
  • 11.5.2 Idea中调试注解处理
  • 附录A OQL分析JVM内存