关于写的Java书籍进展
大家好,去年说要写本Java书,近期就快出版了。眼下已经開始打印样书了,最快于本月中旬左右就能够在互动网www.china-pub.com上看到消息,其它各个站点何时会发售要看详细进货情况。
去年我预期是半年写好这本书,6个月左右确实将手稿写好,但因为是第一次写书,所以没有意料到很多review的成本也是非常高的。另外须要在每次review过后与出版社沟通,一直拖到如今才准备出版(并且还仅仅出了上冊),非常多小伙伴已经等得花儿都谢了。哈哈!我也有类似的感觉,去年写的有些内容如今已经快过时了,呵呵。只是还好重点不是技术点本身。
经过几次review下来后。书中改掉很多问题,也删掉了一些内容。肯定比手稿看起来要顺畅非常多。只是肯定另一些没有注意到的地方。希望大家能够谅解。
这本书在写的过程中越写越多,去年年底发现写的内容已经远远超过了计划的字数和篇幅。
因此与出版社决定分为“上下冊”出版,本次出版的就是上冊,上冊是全然解说基础的,也是胖哥觉得最好的。本次出版的也是上冊,据出版社介绍,上冊内容部分总共为490页。
这本书从写这一年多以来非常久。非常多小伙伴一直对这本书的名字非常感兴趣,哈哈,本书的名字还是有点霸气的。叫做《Java特种兵》。只是我想说的是名字仅仅是一个嚼头,并非说看了这本书就成特种兵了,详细细节能够看书里面的前言部分。本书封面基本定下来。可參考下图:
这本书上冊有2个篇。一个是基础篇、一个是源代码篇。近期也有非常多小伙伴问我究竟要写什么。这里我就贴下文件夹:
上冊文件夹例如以下:
第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工具
3.7.1 jps.
3.7.2 jstat
3.7.3 jmap.
3.7.4 jstack.
3.7.5 jinfo.
3.7.6 JConsole.
3.7.7 Visual VM...
3.7.8 MAT(MemoryAnalyzer Tool)...
3.7.9 BTrace.
3.7.10 HSDB..
3.7.11 工具总结...
3.8 总结....
3.8.1 写代码...
3.8.2 心理上战胜虚拟机带来的恐惧
第4章 Java通信。交互就须要通信
4.1 通信概述....
4.1.1 Java通信的基本过程...
4.1.2 Java通信的协议包装...
4.1.3 编写自己定义通信协议...
4.1.4 Java的I/O流是不是非常难学...
4.2 Java I/O与内存的那些事....
4.2.1 常规I/O操作的运作过程...
4.2.2 DirectBuffer的使用...
4.2.3 关于Buffer
4.2.4 FileChannel的加锁...
4.3 通信调度方式....
4.3.1 同步与异步...
4.3.2 堵塞与非堵塞...
4.3.3 Linux OS调度IO模型...
4.3.4 Java中的BIO、NIO..
4.3.5 Java AIO..
4.4 Tomcat中对I/O的请求处理....
4.4.1 Tomcat的配置&一个请求的响应...
4.4.2 Request、Response对象生成...
4.4.3 拉与推...
第5章Java并发。你会遇到吗..............
5.1 基础介绍....
5.1.1 线程基础...
5.1.2 多线程...
5.1.3 线程状态...
5.1.4 反面教材suspend()、resume()、stop()
5.1.5 调度优先级...
5.1.6 线程合并(Join)...
5.1.7 线程补充小知识...
5.2 线程安全....
5.2.1 并发内存模型概述...
5.2.2 一些并发问题描写叙述...
5.2.3 volatile.
5.2.4 final
5.2.5 栈封闭...
5.2.6 ThreadLocal
5.3 原子性与锁....
5.3.1 synchronized.
5.3.2 什么是乐观锁...
5.3.3 并发与锁...
5.3.4 Atomic.
5.3.5 Lock.
5.3.6 并发编程核心AQS原理...
5.3.7 锁的自身优化方法...
5.4 JDK 1.6并发编程的一些集合类....
5.5 常见的并发编程工具....
5.5.1 CountDownLatch.
5.5.2 CyclicBarrier
5.5.3 Semaphor
5.5.4 其它工具简单介绍...
5.6 线程池&调度池....
5.6.1 堵塞队列模型...
5.6.2 ThreadPoolExecutor
5.6.3 调度器ScheduleThreadPoolExecutor
5.7 总结:编写并发程序要注意些什么....
5.7.1 锁粒度...
5.7.2 死锁...
5.7.3 “坑”非常多...
5.7.4 并发效率一定高吗...
5.8 其它的并发编程知识....
5.8.1 ShutdownHook(钩子线程)
5.8.2 Future. 332
5.8.3 异步并不等价于多线程...
第6章 好的程序猿应当知道数据库基本原理...........................................
6.1 开发者为什么要知道数据库原理....
6.2 从开发者角度看数据库原理....
6.2.1 实例与存储...
6.2.2 数据库基本原理...
6.2.3 索引基本原理...
6.2.4 数据库主从基本原理...
6.2.5 我们常常相信的那些经验...
6.3 从程序猿角度看数据库优化方法....
6.3.1 不同领域的SQL差别...
6.3.2 运行计划...
6.3.3 SQL逻辑的样例...
6.3.4 模型结构设计的优化...
6.3.5 暂时表...
6.3.6 分页知识补充...
6.3.7 计算count值...
6.3.8 分布式事务探讨...
6.3.9 其它...
6.4 学会最主要的性能诊断....
6.4.1 进入云数据库时代...
6.4.2 从程序猿角度关注的数据库诊断信息...
6.5 数风流存储,还看今朝....
第2篇 源代码篇
第7章 源代码基础
7.1 为何会出现框架....
7.2 阅读框架前的技术储备....
7.2.1 反射基础知识...
7.2.2 AOP基础...
7.2.3 ORM基础...
7.2.4 Annotation与配置文件...
第8章部分JDBC源代码解说..
8.1 JDBC通用接口规范....
8.2 JDBC Driver注冊....
8.3 创建Connection.
8.4 SQL运行及处理....
8.4.1 创建Statement
8.4.2 Batch设置批处理...
8.4.3 fetchSize与maxRows.
8.4.4 setQueryTimeout()与cancel()
第9章 部分Spring源代码解说
9.1 Spring MVC
9.1.1 Spring载入
9.1.2 Spring MVC处理一个简单请求
9.2 Spring事务管理器
9.2.1 JDBC事务的基本思想
9.2.2 Spring事务管理器的基本架构
9.2.3 Spring怎样保存Connection
9.2.4 Spring怎样保证程序中多次获取到的连接是同一个
9.3 思考:自己做框架有眉目了吗
第10章 看源代码的一些总结.
10.1 高手看API的能力
10.2 通过源代码能否量化性能与稳定性
10.3 思考类似方案和技术的优缺点
10.4 明白场景和业务,不做技术控
10.4.1 谈谈技术控的那些事..
10.4.2 明白业务背景的样例..
10.5 胖哥对框架的浅析...
10.5.1 框架由来的一个补充.
10.5.2 开源框架与扩展..
10.5.3 框架与解决这个问题.
10.6 学海无涯,心境无限.
下冊的手稿也已经写好。可是详细的文件夹和内容还会有所修改,只是不会有非常大的变动了,为了满足大家的好奇心,我写一下下冊大概要写的内容(在上冊的前言中也有):
1、设计篇。设计篇会提到设计模式和思想,可是胖哥会提出一些探讨性的观点和生活中的思想,然后我们再用一些实例来设计一些东西(2-3章)。
2、实现篇。主要解说项目中的你我他。胖哥会讲讲自己所经历的一些项目中的稀奇古怪的事情。做事情的方法。人与人之间的合作,一些技术坑。
3、扩展篇,扩展篇比較杂。有走马观花式探讨一些集群、分布式的技术知识。也有探讨思想方法。看问题的角度,做IT人的心态等。
大概就这些了,下次大概就这些了。上冊假设大家喜欢的话。下冊我也会竭尽所能尽快review好。好了,就这些了。
等书出版的时候我再发个帖子,哈哈!
关于写的Java书籍进展的更多相关文章
- java 书籍推荐 JavaEE程序员必读图书大推荐
java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...
- 学习Java书籍推荐和面试网站推荐
一.Java书籍推荐: 来自http://www.importnew.com/26932.html 1. 鸟哥的Linux私房菜—基础学习篇 3. Effective Java 6. Java并发编程 ...
- java书籍推荐[转]
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.下面就按照学习顺序,给大家推荐下面这些JAVA书籍.一.Java编程入门类,选择大于努力,入门太重要.对 ...
- 这本最适合夯实基础的经典 Java 书籍,可能80% 的 Java 程序员没有认真看过!
公众号[程序员书单]出品,转载请注明出处 作者:黄小斜 今天要给大家带来的一本书,是大名鼎鼎的head first系列丛书的一本<head first Java>相信很多学习Java的朋友 ...
- 自己写一个java.lang.reflect.Proxy代理的实现
前言 Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的.本文就自己写一个Pr ...
- Java书籍推荐
Java书籍推荐 转自:http://www.cnblogs.com/exclm/archive/2009/01/03/1367597.html 一.入门 <Java 2从入门到精通>- ...
- 恕我直言,在座的各位根本写不好Java!
其实,本不想把标题写的那么恐怖,只是发现很多人干了几年 Java 以后,都自认为是一个不错的 Java 程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽和我一样做 Java 的同 ...
- 一些常用的java书籍的适看范围
一些常用的java书籍的适看范围 Java三本经典的书: 1.Java核心技术书籍:适合查阅,遇到某个问题不清楚了,可以来此求证. 2.Effective Java:对java底层的一些涉及内容,书 ...
- 手写一个Java程序输出HelloWorld
` 创建一个Hello.java文件使用记事本打开 public class Hello{ public static void main(String [] args){ System.out.pr ...
随机推荐
- delete 多表删除的使用(连表删除)
delete 多表删除的使用 1.从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或 DELETE ...
- CentOS7 lamp安装 centoOS6 lamp
快速lamp安装 How To Install Linux, Apache, MySQL, PHP (LAMP) stack On CentOS 7 Introduction A "LAMP ...
- 推荐一款JavaScript日历控件:kimsoft-jscalendar
一.什么是 kimsoft-jscalendar 一个简洁的avaScript日历控件,可在Java Web项目,.NET Web 项目中使用 二.kimsoft-jscalendar 有什么 ...
- IKAnalyzer使用停用词词典进行分词
@Test // 測试分词的效果,以及停用词典是否起作用 public void test() throws IOException { String text = "老爹我们都爱您.&qu ...
- 对拍BAT
:loop makedata.exe K.exe Kture.exe fc a.out b.out if %errorlevel%==0 goto loop pause
- VS2012JSON自动生成对应的类
一.复制JSON数据如图 {Key:"aaaa",Value:"bbbb"} 二.点击以下操作
- HDU 1037 - Keep on Truckin'
没啥可说的... #include <iostream> using namespace std; ; int a,b,c; int main() { while(cin>>a ...
- UVa 202 - Repeating Decimals
给你两个数,问你他们相除是多少,有无限循环就把循环体括号括起来 模拟除法运算 把每一次的被除数记下,当有被除数相同时第一个循环就在他们之间. 要注意50个数之后要省略号...每一次输出之后多打一个回车 ...
- BZOJ 3233: [Ahoi2013]找硬币( dp )
dp(x)表示最大面值为x时需要的最少硬币数. 枚举x的质因数p, dp(x) = min( dp(x/p) - (p-1) * sigma[a[i]/x] ). ----------------- ...
- linux安装php5.3
安装php的依赖包 [root@localhost admin]# unzip libxml2-2.7.8.tar.zip [root@localhost admin]#tar zvxf libxml ...