《Java特种兵》分上、下册,上册强调个人修为的提升,也是本书主旨所在,希望能帮助各位读者朋友提升“功力”;下册将基于上册的内容融入设计、实现的细节。
《Java特种兵(上册)》上册共10章,主要内容包括:从简单的角度来验证功底,通过一些简单的例子来说明我们应当如何去掌握Java的基础;关于计算机的工作原理和Java虚拟机的基础知识;Java通信;Java并发;数据库知识;源码基础,说明Java常见的框架基础知识,比如反射、AOP、ORM、Annotation和配置文件的原理;JDBC、Spring的源码讲解,通过几种不同类型的框架源码,希望读者能体会源码之中的思维方式、设计、架构,以及了解到不同源码的区别所在;最后是知识总结。
目录
- 第1篇 Java功底篇
- 第1章 扎马:看看功底如何
- 1.1 String的例子,见证下我们的功底
- 1.1.1 关于“==”
- 1.1.2 关于“equals()”
- 1.1.3 编译时优化方案
- 1.1.4 补充一个例子
- 1.1.5 跟String较上劲了
- 1.1.6 intern()/equals()
- 1.1.7 StringBuilder.append()与String“+”的PK
- 1.2 一些简单算法,你会如何理解
- 1.2.1 从一堆数据中找max和min
- 1.2.2 从100万个数字中找最大的10个数字
- 1.2.3 关于排序,实际场景很重要
- 1.2.4 数据库是怎么找数据的
- 1.2.5 Hash算法的形象概念
- 1.3 简单数字游戏玩一玩
- 1.3.1 变量A、B交换有几种方式
- 1.3.2 将无序数据Hash到指定的板块
- 1.3.3 大量判定“是|否”的操作
- 1.3.4 简单的数据转换
- 1.3.5 数字太大,long都存放不下
- 1.4 功底概述
- 1.4.1 什么是功底
- 1.4.2 功底有何用途
- 1.4.3 如何磨练功底
- 1.5 功底补充
- 1.5.1 原生态类型
- 1.5.2 集合类
- 1.6 常见的目录与工具包
- 1.7 面对技术,我们纠结的那些事儿
- 1.7.1 为什么我这里好用,哪里不好用
- 1.7.2 你的程序不好用,你会不会用,环境有问题
- 1.7.3 经验是否能当饭吃
- 1.8 老A是在逆境中迎难而上者
- 第2章 Java程序员要知道计算机工作原理
- 2.1 Java程序员需要知道计算机工作原理吗
- 2.2 CPU的那些事儿
- 2.2.1 从CPU联系到Java
- 2.2.2 多核
- 2.2.3 Cache line
- 2.2.4 缓存一致性协议
- 2.2.5 上下文切换
- 2.2.6 并发与征用
- 2.3 内存
- 2.4 磁盘
- 2.5 缓存
- 2.5.1 缓存的相对性
- 2.5.2 缓存的用途和场景
- 2.6 关于网络与数据库
- 2.6.1 Java基本I/O
- 2.6.2 Java的网络基本原则
- 2.6.3 Java与数据库的交互
- 2.7 总结
- 第3章 JVM,Java程序员的OS
- 3.1 学习Java虚拟机对我们有什么好处
- 3.2 跨平台与字节码基本原理
- 3.2.1 javap命令工具
- 3.2.2 Java字节码结构
- 3.2.3 Class字节码的加载
- 3.2.4 字节码增强
- 3.3 从虚拟机的板块开始
- 3.3.1 Hotspot VM板块划分
- 3.3.2“对象存放位置”小总结
- 3.3.3 关于永久代
- 3.4 常见的虚拟机回收算法
- 3.4.1 串行GC
- 3.4.2 ParallelGC与ParallelOldGC
- 3.4.3 CMS GC与未来的G1
- 3.4.4 简单总结
- 3.4.5 小小补充
- 3.5 浅析Java对象的内存结构
- 3.5.1 原始类型与对象的自动拆装箱
- 3.5.2 对象内存结构
- 3.5.3 对象嵌套
- 3.5.4 常见类型&集合类的内存结构
- 3.5.5 程序中内存拷贝和垃圾
- 3.5.6 如何计算对象大小
- 3.5.7 轻松玩一玩int[2][100]PK int[100][2]
- 3.6 常见的OOM现象
- 3.6.1 HeapSize OOM
- 3.6.2 PermGen OOM
- 3.6.3 DirectBuffer OOM
- 3.6.4 StackOverflowError
- 3.6.5 其他的一些内存溢出现象
- 3.7 常见的Java工具