以下是Java开发岗的一些个人准备经验
知识储备主要包含以下几个模块(按重要性排序)
Java Core(重点:Java 集合&工具类、多线程和并发包)、JVM、排序算法、算法和数据结构、数据库、框架、分布式、、设计模式(结合项目)、计算机网络、工具(Maven、Git、Linux、Docker)
要准备到什么程度?
数据库方面(事物、锁、索引等),其实讲清楚一个问题即可:如何进行SQL调优,比如通过索引,看执行计划即可,如果有其它的优化点,说清楚即可。
Java Core方面,这里给出些诀窍:
1. 能结合ConcurrentHashMap的源代码,说出final,volatile,transient的用法,以及在其中如何用Lock对象防止写并发。
2. 结合一个项目实际,说下设计模式的实践。
3. 多线程方面,能说出Lock或volatile等高级知识点的用法。
4. 这块最取巧:说下GC的流程,以及如何通过日志和Dump文件排查OOM异常,如果再高级些的话,说下如何在代码中优化内存代码。
诀窍点归结成一个:能结合源代码或项目实际,说出些比较资深的问题。
其他需要注意的
Java后台开发千万不要把眼光仅仅局限于三层架构和后台框架, 而要把目光转向:分布式系统(非常重要)、大数据处理、多线程编程、数据库性能调优
知识储备主要包含以下几个模块(按重要性排序)
Java Core(重点:Java 集合&工具类、多线程和并发包)、JVM、排序算法、算法和数据结构、数据库、框架、分布式、、设计模式(结合项目)、计算机网络、工具(Maven、Git、Linux、Docker)
要准备到什么程度?
数据库方面(事物、锁、索引等),其实讲清楚一个问题即可:如何进行SQL调优,比如通过索引,看执行计划即可,如果有其它的优化点,说清楚即可。
Java Core方面,这里给出些诀窍:
1. 能结合ConcurrentHashMap的源代码,说出final,volatile,transient的用法,以及在其中如何用Lock对象防止写并发。
2. 结合一个项目实际,说下设计模式的实践。
3. 多线程方面,能说出Lock或volatile等高级知识点的用法。
4. 这块最取巧:说下GC的流程,以及如何通过日志和Dump文件排查OOM异常,如果再高级些的话,说下如何在代码中优化内存代码。
诀窍点归结成一个:能结合源代码或项目实际,说出些比较资深的问题。
其他需要注意的
Java后台开发千万不要把眼光仅仅局限于三层架构和后台框架, 而要把目光转向:分布式系统(非常重要)、大数据处理、多线程编程、数据库性能调优
全部评论
(1) 回帖