关于写的Java书籍进展

article/2025/10/6 0:56:50

大家好,去年说要写本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好,好了,就这些了!

等书出版的时候我再发个帖子,哈哈!









http://chatgpt.dhexx.cn/article/vuNnLyap.shtml

相关文章

Java程序员必看的 14 本 Java 书籍!

关乎于程序员,除了做项目来提高自身的技术,还有一种提升自己的专业技能就是:多!看!书! 毕竟,书是学习的海洋呢!So,Java程序员你们准备好了吗?双手奉上Java程序…

豆瓣高分JAVA书籍,你都读过吗?

作为一个程序员,要时时刻刻的学习,豆瓣高分JAVA书籍你都看过了吗?,文末有粉丝福利哦!!! 1.《算法(第4版》 9.32分 本书全面讲述算法和数据结构的必备知识,具有以下几大特…

工作十年,分享看过的优质 Java 书籍

不知不觉,我已经接触 Java 11 年了——从 2008 年北京奥运会那年开始,到现在;未来还会更久。这期间我读了不少 Java 方面的书籍,纸质版的少说有三十来本吧,更何况还有不少的电子书。万事都有好坏,书也一样。…

Java程序员必看经典书籍,助你早日打通任督二脉

一、Java四大神兽,神兽在手,天下我有! 1、《Java核心技术卷一》 唯一可以和《Java编程思想》媲美的一本Java入门书籍。单从技术的角度来看,前者更好一些。但上升到思想层面嘛,自然后者更好,两者的偏重点不…

Java书籍推荐(这些书你看过几本?)

目录: 1.《Java语言程序设计》 2.《Java 7入门经典》 3.《Java核心技术卷 I(原书第11版)》 4.《深入理解Java虚拟机》 5.《Java 编程思想》 6.《Java Web开发详解–XMLXSLTServletJSP深入剖析与实例应用》 7.《分布式 Java 应用&#…

Java 十大必读经典书籍推荐

今天给大家推荐十本学习 Java 语言必读经典书籍,它们经过了无数人的口口相传,都已成为了 Java 领域顶级的经典名著。 1、Java核心技术卷 I基础知识 豆瓣评分:9.4 Java 领域极有影响力和价值的著作之一,与《Java编程思想》齐名&a…

干货 | 如何系统学习 C 语言?

关注、星标公众号,直达精彩内容 C 语言应该是绝大部分同学的编程第一课。对于非 CS 专业的同学,学 C 语言主要是掌握一些基本的编程方法,C 语言只是媒介。但是对于 CS 科班的同学,C 语言是后续的计组、体系结构、操作系统、编译原…

探索学习C语言的方法

大一入学以来到现在其实自己现在仍然还是没有找到一个学习C语言的方法 ,现在仍然还处于一个对学习方法的探索阶段,那就浅浅的分享一下自己之前所用过的方法吧,以下是我自己总结的有C语言的知识点,希望能有大神指教 浅浅的分享一下学习方法。…

论初学者对c语言的理解与学习方法

最为一名刚刚上大一学习C语言的小白来说,是不是有很多人像我一样,上第一节C语言课程的时候,一脸问号:“这是什么东西”,“我学这个东西干什么”,“老师在前面说的是啥,我怎么什么都听不懂&#…

C语言学习方法、学习平台及项目推荐

2022 精心整理的 C语言/C++ 语言学习宝藏,值得收藏~_程序员编程指南的博客-CSDN博客知名大学计算机系开源课程收录:浙江大学课程攻略共享计划清华大学计算机系课程攻略上海交通大学课程资料分享北京航空航天大学(北航)课程作业资料共享计划华北电力大学计算机系课程攻略北京邮…

C语言最新学习路线(从入门到实战)

C语言学习路线 关于C语言的学习路线小编给大家画了一些思维导图,希望能够帮助到大家 工具篇 目前Windows环境下的开发工具已经更新完毕,大家可以查看对应的文章 使用VScode开发C语言程序,环境安装配置,保姆级教程使用VS2019编写…

如何学好C语言程序设计?

大一新生,或者想进入IT行业的人士,学习的第一门计算机编程语言往往是:C语言程序设计。 提到C语言,有同学立刻会向我提一串问题:怎么编程老出错啊?明明编译过了,怎么运行结果不正确?想编写一个大…

C语言超全学习路线(少走弯路)

学完 C 语言,有助于我们对其他语言的理解,毕竟 C 语言比较低鞥,如果你还是大一大二,不知道该使用哪一门入门,那么我推荐C语言,可能比Python等难,但掌握之后学其他语言会容易很多。 下面是我学完…

必看:C语言高效学习方法(附经典试题详解)

C试题100例详解 写在前面C语言高效学习方法 正片开始:问题描述课题分析算法描述自然语言方式描述流程图方式描述 源代码试验结果分析与讨论 写在前面 本专栏提供多于100道C试题解答,并且会一直不定期更新,使用的过程中如果有看不懂的地方&am…

分享下自己学习C语言的方法和心得!

要如何学好C语言,其实最核心的就一点,自己得多去练习写代码,有些东西,练习的多了,自然就懂了。如果只是一味的看书,看视频教程而不是自己动手去实践,去敲代码,调试运行,那…

C语言 学习

其中,#include 预处理器指令 int main(void) main()总是第一个被调用的函数 C语言有6种语句,标号语句,复合语句,表达式语句,选择语句,迭代语句,跳转语句。 圆括号表明main()是一个函…

C语言学习

C语言简要概述 简单来说一个C程序就是由若干头文件和函数组成。 简单示例&#xff1a; #include <stdio.h>//头文件 int main() //主函数 { printf("I love C"); return 0;} 一个C程序&#xff0c;有且只有一个主函数&#xff0c;即main函数,C程序就是执行主…

我是如何自学C语言的(一个菜鸟的学习路)

零基础扫盲课&#xff1a; 计算机科学速成课&#xff08;扫盲课&#xff09;:【计算机科学速成课】[40集全/精校] - Crash Course Computer Science_哔哩哔哩_bilibili 简介&#xff1a;这个视频会以自下而上的方式&#xff0c;给你介绍整体计算机行业的各项知识&…

c语言学习方法论

简介&#xff1a;给大家介绍一下C语言的知识结构&#xff0c;让大家呢在学习C语言之前呢对我们这个 C语言的整体的知识模块有一个整体性的认识&#xff0c;你学的是什么你知道&#xff0c;那么你学的这个进度在你这个了解C语言的这个知识结构的基础上呢也会有一个很好的把握&am…

大一新生应该如何学习C语言,书上代码看不懂理解不了怎么办?

大家好&#xff0c;我是二哥呀&#xff01; 昨天有个读者问我要 C语言的学习路线&#xff0c;他今年刚上大一&#xff0c;书上的代码完全看不懂。 讲真&#xff0c;大一新生&#xff0c;一般都是零基础的纯小白&#xff0c;看不懂书上的代码很正常&#xff0c;除非是小学、初中…