JAVA之父詹姆斯.高斯林开发了JAVA语言之后,有一次看到了《重构—改善既有代码的设计》一书之后,说了一句话:“如果我早看到这本书,JAVA就不会是这个样子了”! 估计连JAVA之父也不敢说全部吃透了JAVA生态了,JAVA涉及到的东西实在是太多了,作为一门高级编程语言,JAVA确实很容易用来开发,JAVA封装了大量的API,基本覆盖了我们日常开发中的几乎全部功能,但如果要深入底层,那么很多人就成为“门外汉”了! 比如我去小公司面试的时候,常常遇到问题是HashMap怎么用?concurrentHashmap怎么用?而在大公司这样的问题往往变成了concurrentHashMap底层是怎么结构?为什么线程安全?为什么比起synchronizeMap性能好? jvm相关的东西更是难倒大多“英雄好汉”,JAVA内存模型,内存结构,类加载机制,类加载器,gc的算法,gc收集器有哪几种?什么时候该用哪一种?jvm怎么调优? 这样的问题面试基本撂倒一半人! 这只是冰山一角,还有诸如反射,动态代理,三种io(由此引申的netty,nginx等),多线程方面的技术(线程池底层,生产者消费者模型,线程安全等等),JAVA每个版本的新特性,更不论JAVA生态中的spring相关框架,搜索引擎,大数据开发等等每一个知识点都是几本书才能学完的东西! 一个人的精力实在是有限,如果非要追求对JAVA所有东西精通,终有心力交瘁之时,只要掌握大多数重点即可,我一直在分享JAVA方面比较热门的技术,有需要的朋友可以去看看,肯定您能有所收获! |
|