前言

最近听一个敌人讲,他的一个发小做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学习园地。