一般的程序员或许只需知道一些JAVA的语法结构,能对数据库数据进行CRUD就可以应付了。但要成为JAVA(高级) 工程师,就要对JAVA做比较深入的研究,需要不断学习进步,以下对高级工程师需要突破的知识点做个简要整理。
欢迎工作一到五年的Java工程师朋友们加入Java架构开发: 957734884群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
接下来让我们看看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、全文检索、消息中间件,负载均衡、连接池、流计算等
网友评论