序言
工作年限匹配的技能
一年 | 三年 | 五年 |
《Java编程思想》 | 《深入理解Java虚拟机》 | 《编译原理》 |
《Java性能权威指南》 | 《深入理解计算机系统》 | |
《重构:改善既有的代码设计》 | 《代码整洁之道》 | |
《Java并发编程实战》 | 《大话设计模式》 | |
《Effective Java》 | 《深入理解计算机系统》 | |
《数据结构与算法》 | 《算法导论》 | |
《实战Java高并发程序设计》 | 《数据结构与算法分析》 | |
《Java 8实战》 | 《代码大全》 | |
《RabbitMQ实战》 | 《linux私房菜》 | |
《深入理解Kafka》 |
基本要求
1.语言的基础部分:
基础部分的重点,其实主要就是static、final、transient、volatile这一类的关键字,以及内部类、泛型这一类的高阶语法。
2.Java运行时环境
3.并发知识与concurrent包
4.设计模式和反射
5.文件IO、NIO、网络IO以及网络协议
中等要求
1.Spring、Mybatis框架
2.Linux服务器
3.数据库优化
4.消息服务
5.缓存服务
6.负载均衡器
加分要求
1.数据结构与算法
2.计算机操作系统
3.计算机网络
4.熟练使用一种脚本语言
5.你的github和博客
其他
这个阶段,除了上面提到的了解JVM、JDK和框架源码以外,也请你根据别人优秀的源码,去造一个任何你能够想象出来的轮子。
在这个阶段,你就不能再简单的去学习前3年的内容了,虽然前面的学习如果还不够深入的话依旧要继续,但这个时候你应该更多的考虑建立你的优势,也可以称为差异性。
并发、JVM、分布式、TCP/IP协议这些
Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,HashMap,TreeMap这一类的
HashMap是不是有序的?
接下来就可能会问你,TreeMap和LinkedHashMap是如何保证它的顺序的?
你觉得它们两个哪个的有序实现比较好?
Java并发包当中的类,它们都有哪些作用,以及它们的实现原理,这些类就是java.concurrent包下面的。与上面一样,咱们也简单的模拟一个并发包的连环炮。
栅栏(Java的并发包中的CyclicBarrier)
IO包和NIO包中的内容。这部分里面NIO会是重点,IO包大部分都会比较熟悉,因此可能会直接略过,直接问你NIO的内容。
Java的虚拟机的内容。这部分主要包括三部分,GC、类加载机制,以及内存。
下面是关于类加载机制的简单连环炮。
再来一个关于内存的连环炮。