前言
最近听一个敌人讲,他的一个发小做 java 开发三年,不在 BAT 大厂,在小公司也能拿到月薪 30k。
小编听了除了艳羡嫉妒,也只能检查下本人为什么不行了,所以小编和敌人探讨了下,Java 程序员月薪 30K,技术水平须要达到什么水平?
明天小编将总结的 Java 程序员进阶必须要把握的技能,分享进去,心愿能帮忙到大家。
第一根底
比方对 汇合类,并发包,IO/NIO,JVM,内存模型,泛型,异样,反射 等有深刻理解,最好是看过源码理解底层的设计。比方个别面试都会问 ConcurrentHashMap,CopyOnWrite,线程池,CAS,AQS,虚拟机优化 等知识点,因为这些对互联网的企业是相对重要的。
而且个别人这关都过不了,还发闹骚说这些没什么用,为什么要面试。
举一例子,在应用 线程池 时候,因为应用了无界队列,在近程服务异常情况下导致内层飙升,怎么去解决?你要是连线程池都不分明,你怎么去玩?
再举一例,因为对 ThreadLocal 了解出错,应用它做线程平安的管制,导致没能实现真的线程平安。所以作为一个拿三万的 JAVA 程序员这点根底是要有的。
第二全面的互联网支流技术相干常识
从底层说起,你起码得深刻理解 mysql,redis,mongodb,nginx,tomcat,rpc,jms 等方面的常识。
你要问须要理解到什么水平,我能够给你说个大慨。首先对于 MySQL,你要晓得常见的 参数设置,存储引擎 怎么去抉择,还须要理解常见的 索引引擎,晓得怎么去抉择。晓得怎么去设计表,怎么优化 sql,怎么依据执行打算去调优。
高级的你须要去做 分库分表的设计和优化 ,个别互联网企业的数据库都是读写拆散,还会垂直与程度拆分,所以这个也有教训的成分在外面。而后redis,mongodb 都是须要理解原理,须要会调整参数的,而 nginx 和 tomcat 简直都是 Java 互联网方面必配,其实很阿里的技术栈抉择有点关系。至于 rpc 相干的就多的去,必须各种 网络协议,序列化技术,SOA等等你要有一个深刻的了解。
当初利用比拟广的 rpc 框架,在国内就是dubbo 了,能够自行搜寻。
至于 jms 相干的起码得理解原理吧,个别状况下不是专门开发中间件零碎和撑持零碎的不须要理解太多细节,国内企业罕用的次要是activeMQ 和 kafka。你能对我说的都钻研的比拟深刻,阿里 p7 都不是太大问题的,当然这个还须要看你的架构能力方面的面试体现了。
第三编程能力,编程思维,算法能力,架构能力
首先 30K 程序员对 算法 的要求我感觉还是比拟低,再高级也最多 红黑树 吧,然而 排序和查问 的根本算法得会。
编程思维 是必须的,问你个 AOP 和 IOC 你起码的清清楚楚,设计模式 不说每种都用过,但也能理解个几种吧。
编程能力 这个我感觉不好去评估,然而拿一个 2000W 用户依据姓名年龄排序这种题目也能信手拈来。
最初就是 架构能力,这种不是说要你设计个多牛逼多高并发的零碎,起码让你做一个秒杀零碎,防重申请的设计能疾速搞定而没有坑吧。
总结
其实升职加薪并不难,关键在于你的实战经验是否过关,根底技术体系是否可靠。
小编还整顿了最新的java 面试题及 java 热门技术 PDF 收费分享给大家,有须要的敌人能够退出我的 Java 学习园地。