Java工程师的生活、读书、技术栈

一、引子

本文概括了一个java工程师的生活、必读书籍、技术栈,并持续更新中。希望对迷茫中的你有所指引。

方式:Java技术栈+链接。

二、生活篇

北漂不易,逆风前行

30岁的程序员,未来之路-写于疫情笼罩下的北京-中国-地球

三、必读书籍推荐

 

目录 书籍名称 知识点 描述

java编程

《Java从入门到精通》入门足矣。

   
《effective java》--》四星推荐,工具书,时长翻看一下规避坑。    

jvm

《深入理解java虚拟机》

java历史+jvm内存+虚拟机执行+程序编译优化+并发。 超五星推荐,建议看上多遍。主攻原理,深入浅出,楼主到现在依然不敢说完全吃透这本书。
实战Java虚拟机——JVM故障诊断与性能优化》第二版 主攻JVM实践,各种调优。 四星推荐。看完一篇感觉一般。但毕竟JVM调优的数据很少,凑活用。

数据库/缓存

《Mysql技术内幕-InnoDB存储引擎》 原理多,从现在主流innoDB引擎入手,深入讲解mysql. 超五星推荐,建议看多遍。由于讲的比较深且抽象,后端研发可以有选择的看。先看其中几章,慢慢吃透全书
《高性能Mysql》第三版。 索引、查询等围绕性能优化讲解的不错 超五星推荐,内容极端概括且有深度。书很厚,适合有一定经验的开发者看,不然很可能吃不透看不下去。
《Redis深度历险-核心原理与应用实践》 原理+源码+应用 四星推荐,讲解生动,200多页的很薄的一本书,全彩...鉴于咱们是开发并不是DBA,看看这本书作为redis入门也够用了。

设计模式

《设计模式的艺术-软件开发人员内功修炼之道》 中国人写的设计模式,还可以。 四星级推荐。市面上的设计模式都很老的,十年前的。这本比较新可以看看。不过话说设计模式不是光看书来的,要结合源码、真实项目实践才能很好的领悟奥义....

算法

《算法第四版》 算法基础,教材版,基本的算法都涵盖到 超五星推荐,全部java实现算法,讲解透彻。书很厚,算法比较全。官网可以下载到源码包,结合源码包,方便调试,非常好。
《漫画算法-小灰的算法之旅》 算法概念、数据结构、基础算法,面试中的算法,简单应用。 五星推荐,19年算法新书榜销量冠军,200多页书很薄,可以快速学习算法。你能想象一本全彩的算法书吗...本书作者还有微信公众号,持续更新算法相关文章。

并发

《JAVA高并发程序设计》

并发 四星级推荐,除了第七章,其它几章都可以看看。
《JAVA并发编程实战》 并发的元老级别的书,必看 超五星推荐,经典。每一页都是经典。

区块链

《区块链原理、设计与应用》 历史+原理+应用 四星级推荐,原理讲的很清晰。

开源框架

《spring实战第四版》 ioc+aop+web 四星级推荐,主流框架,建议挑选章节看,毕竟有些东西用不到。
《Spring Cloud 微服务实战》 工具书 四星推荐,作为spring cloud工具书还是不错。
《springcloud与docker》
微服务架构实战
工具书 一般

综合

《亿级流量网站架构核心技术》    
《大型网站技术架构-核心原理与案例分析》    
《可伸缩服务架构-框架与中间件》    

四、具体技术树

一级目录 二级目录 链接
JDK

jdk入门

OpenJDK-Hotspot源码包目录结构

Java异常简介、异常捕获还是上抛总结

JDK8-十大新特性-附demo

RSA加密

在openjdk8下看Unsafe源码

Java中关于WeakReference和WeakHashMap的理解

java集合

list、set、map集合总览

ConcurrentHashMap原理分析

JDK1.7升级1.8 HashMap原理的变化

Vector集合详解

jvm

jvm和调优

JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)

Eclipse Memory Analyzer,内存泄漏插件,安装使用一条龙

线上CPU飙升100%问题排查,一篇足矣

线程

线程

Thread类源码剖析

从Thread.start()方法看Thread源码,多次start一个线程会怎么样

ThreadLocal终极源码剖析-一篇足矣!

多线程

《The java.util.concurrent Synchronizer Framework》 JUC同步器框架(AQS框架)原文翻译

AbstractQueuedSynchronizer AQS框架源码剖析

Java的LockSupport.park()实现分析

终极锁实战:单JVM锁+分布式锁

对象内存布局、synchronized终极原理

同步中的四种锁synchronized、ReentrantLock、ReentrantReadWriteLock、StampedLock

锁Synchronized

zookeeper分布式锁

并发

常用线程池和调度类

根据CPU核心数确定线程池并发线程数

多线程并发执行任务,取结果归集。终极总结:Future、FutureTask、CompletionService、CompletableFuture

多线程经常使用的3个关键字:synchronized、ReentrantLock、volatile

算法

基础算法

十大基础排序算法[java源码+动态图解析+性能分析]

常见算法合集[java源码+持续更新中...]

高阶算法

红黑树

最小生成树(一)概论

最小生成树(二)Prim算法

最小生成树(三)Kruskal算法

最小生成树(四)总结

最短路径:Dijstra(迪杰斯特拉)算法

字符串

字符串排序

单词查找树

子字符串查找

数据压缩

分布式算法

 

分布式共识算法 (一) 背景

分布式共识算法 (二) Paxos算法

分布式共识算法 (三) Raft算法

分布式共识算法 (四) PoW算法

开源框架

    

    

 

Spring 框架

异步任务spring @Async注解源码解析

@Transactional事务提交后触发异步方法

Spring IOC容器启动详解

Spring IOC(一)概览

Spring IOC(二)容器初始化

Spring IOC(三)依赖注入

Spring IOC(四)总结

Spring Kafka原理详解

kafka原理和实践(一)原理:10分钟入门

kafka原理和实践(二)spring-kafka简单实践

kafka原理和实践(三)spring-kafka生产者源码

kafka原理和实践(四)spring-kafka消费者源码

kafka原理和实践(五)spring-kafka配置详解

kafka原理和实践(六)总结升华
Spring Cloud(boot)

spring boot容器启动详解

spring cloud feign不支持@RequestBody+ RequestMethod.GET,报错

@RequestBody对象为空,异常Required request body is missing

spring cloud Gateway简单使用

Spring Cloud 系列之Hystrix、Ribbon、Feign 源码剖析(一)引子

Spring Cloud 系列之Hystrix、Ribbon、Feign 源码剖析(二)原理概括

Spring Cloud 系列之Hystrix、Ribbon、Feign 源码剖析(三)源码详解

Spring Cloud 系列之Hystrix、Ribbon、Feign 源码剖析(四)总结提高

zookeeper

zookeeper(zkCli)命令概览

dubbo

 

spring-mybatis

 

spring 事务(本地事务)

spring事务详解(一)初探事务

spring事务详解(二)简单样例

spring事务详解(三)源码详解

spring事务详解(四)测试验证

spring事务详解(五)总结提高

分布式事务

分布式事务(一)原理概览

分布式事务(二)JTA规范

分布式事务(三)mysql对XA协议的支持

分布式事务(四)简单样例

分布式事务(五)源码详解

分布式事务(六)总结提高

Googe Guava

Guava 1:概览

Guava 2:Basic utilities基本工具

Guava 3: 集合Collections

Guava 4: Guava cache

Guava 6:Concurrency

Guava 12:Guava EventBus源码剖析

设计模式

观察者模式

设计模式之大成--配真实工作中的案例源码

数据库/缓存

 

mysql

mysql事务隔离级别和MVCC

PowerDesigner连接mysql逆向生成pdm

mysql按照天统计报表,当天没有数据,填0

日志监控系统中,大批量查询mysql方案

缓存

基于Redis的爬虫平台的实现

google cache源码详解

内存缓存 Gcache VS Caffeine源码详解

redis详解(一)原理概览

redis详解(二)简单样例

redis详解(三)源码详解

redis详解(四)总结提高

linux

 linux内核

 Java线程与Linux内核线程的映射关系

 其它

 工具

 

maven常用插件pom配置

ClassLoader.getSystemResourceAsStream("a.txt")获取不到资源文件

一台电脑支持2个git账号:gitlab+github

jenkins配置从git指定分支下载代码,打包部署jar包

原文地址:https://www.cnblogs.com/dennyzhangdd/p/8674675.html