- Java65
- 数据库37
- 计算机基础31
- 技术文章精选集25
- 分布式18
- 系统设计12
- 高性能11
- 框架10
- 走近作者9
- 知识星球9
- 开源项目8
- 计算机书籍7
- 开发工具7
- 高可用6
- 走近项目5
- 代码质量4
- 面试准备3
- Java面试指北1
Lucene
Elasticsearch 在 Apache Lucene 的基础上开发而成,学习 ES 之前,建议简单了解一下 Lucene 的相关概念。
《Lucene 实战》 是国内为数不多的中文版本讲 Lucene 的书籍,适合用来学习和了解 Lucene 相关的概念和常见操作。
考虑到很多同学比较喜欢看视频,因此,这部分内容我不光会推荐书籍,还会顺便推荐一些我觉得不错的视频教程和各大高校的 Project。
操作系统
为什么要学习操作系统?
从对个人能力方面提升来说,操作系统中的很多思想、很多经典的算法,你都可以在我们日常开发使用的各种工具或者框架中找到它们的影子。比如说我们开发的系统使用的缓存(比如 Redis)和操作系统的高速缓存就很像。CPU 中的高速缓存有很多种,不过大部分都是为了解决 CPU 处理速度和内存处理速度不对等的问题。我们还可以把内存可以看作外存的高速缓存,程序运行的时候我们把外存的数据复制到内存,由于内存的处理速度远远高于外存,这样提高了处理速度。同样地,我们使用的 Redis 缓存就是为了解决程序处理速度和访问常规关系型数据库速度不对等的问题。高速缓存一般会按照局部性原理(2-8 原则)根据相应的淘汰算法保证缓存中的数据是经常会被访问的。我们平常使用的 Redis 缓存很多时候也会按照 2-8 原则去做,很多淘汰算法都和操作系统中的类似。既说了 2-8 原则,那就不得不提命中率了,这是所有缓存概念都通用的。简单来说也就是你要访问的数据有多少能直接在缓存中直接找到。命中率高的话,一般表明你的缓存设计比较合理,系统处理速度也相对较快。
数据库基础
数据库基础这块,如果你觉得书籍比较枯燥,自己坚持不下来的话,我推荐你可以先看看一些不错的视频,北京师范大学的《数据库系统原理》、哈尔滨工业大学的《数据库系统(下):管理与技术》就很不错。
这是一则或许对你有用的小广告
- 面试专版:准备 Java 面试的小伙伴可以考虑面试专版:《Java 面试指北 》 (质量非常高,专为面试打造,配合 JavaGuide 食用效果最佳)。
- 知识星球:技术专栏/一对一提问/简历修改/求职指南/面试打卡/不定时福利,欢迎加入 JavaGuide 官方知识星球。
下面推荐都是我看过并且我觉得值得推荐的书籍。
不过,这些书籍都比较偏理论,只能帮助你建立一个写优秀代码的意识标准。 如果你想要编写更高质量的代码、更高质量的软件,还是应该多去看优秀的源码,多去学习优秀的代码实践。
代码整洁之道
Java 基础
《Head First Java》这本书的内容很轻松有趣,可以说是我学习编程初期最喜欢的几本书之一了。同时,这本书也是我的 Java 启蒙书籍。我在学习 Java 的初期多亏了这本书的帮助,自己才算是跨进 Java 语言的大门。