一般的程序员或许只需知道一些JAVA的语法结构,能对数据库数据进行CRUD就可以应付了。但要成为JAVA(高级) 工程师,就要对JAVA做比较深入的研究,需要不断学习进步,以下对高级工程师需要突破的知识点做个简要整理。
Java高级工程师需要弄明白的20个知识点
- 1、对多线程的了解,尤其是对线程池的理解,对ThreadPoolExecutor构造参数各个作用的理解、了解Fxied Pool、Cached Pool分别的作用
- 2、对锁的了解,synchronized、Lock接口(及其对应的实现的理解)
- 3、对JDK中HaskMap、ArrayList的源代码级别理解;对并发包中ConcurrentHashMap源代码级别的理解(可以基于JDK8、在了解JDK7)
- 4、熟练使用Mybais、Spring框架
- 5、对Spring Bean生命周期的理解、Spring 事务管理的理解(主要关注隔离性、事务的几种传播方式)
- 6、对Spring AOP能够用于哪些场景、实现AOP的核心技术是什么(JDK Proxy、cglib包)
- 7、对Tomcat的架构有所理解(底层通讯框架是什么:NIO、如何做到隔离:自定义的classloader)
- 8、对分布式理论的了解(CAP、BASE等)
- 9、对分布式锁理论的了解,及其哪些方式可以实现、如何实现(Redis、Zookeeper)
- 10、对分布式事务理论的了解(2PC、3PC、TCC),及其哪些方式可以实现、如何实现(MQ等)
- 11、对Redis的理解以及应用(分布式应该如何配置)有多少种的数据结构、持久化是如何设计
- 12、对Zookeeper的理解以及应用(选主过程ZAB协议,几种节点Leader、Follewer、Observer,4种节点:持久、持久有序、临时、临时有序)
- 13、基本的设计模式:工厂、单例、表驱动法、模板等
- 14、线程的几大状态,以及状态变化
- 15、数据库大数据如何优化(几千万,几亿级的)
- 16、如何做分布式事务锁?
- 17、dubbo、Sping Boot、Sping cloud等分布式框架各有什么特点,选型的依据是什么?
- 18、介绍下zeekeeper如何领导者决策过程
- 19、Java基础技术体系、JVM内存分配、垃圾回收、类装载机制、性能优化、反射机制、网络编程、常用数据结构和相关算法
- 20、常见的一些解决方案及其原理:单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、流计算等