北京做Java开发月薪达到两万,需要技术水平到什么程度?

分析:

1. “NIO”->老老实实研究一下netty的源码和原理,保证他问不倒你;“类加载原理”->老生常谈了,记得一个delegate,一个classloader如何造成内存泄漏就行;“动态代理、CGLIB”->肯定是问你如何生成proxy类,两者有啥异同。找几篇博客来看看就行。另外,我估计很大程度是需要你结合spring来回答,因此还是看看spring的aop吧;“GC的原理”->这个就厉害了,GC有好多种,到底是哪种的原理啊?但是以我身为一名老年程序猿来告诉你,好好看一下CMS GC和G1 GC就行。CMS答好了肯定是OK的,G1纯粹是锦上添花,给面试官留个追求技术的印象吧;“JVM内存模型”->JVM怎么还有内存模型?是Java语言的内存模型吧?没什么好说的,看Java语言规范吧;“性能优化手段”->胡侃吧,朝着怎么改进锁,怎么异步,怎么利用缓存,怎么选择合适的GC算法,怎么调整Hotspot VM的各generation比例,blabla(此处应有呕吐的表情,这种问题最烦了,你要是底气足,顶一句“具体问题具体分析”,我敬你是一条汉子)

2. “了解并发基础变成最优”->看不懂,感觉是废话,不管。并发这种东西,好好看一下java.util.concurrent包里的类。

3. “具备开发实战技能,可以熟练使用Eclipse、Idea、熟悉常见的调试方法及技巧、ant/svn/maven,有疑难杂症的排查经验”->工作一段时间都会吧?ant和svn完全不够酷,看得出来要么阿里的人比较守旧(或者懒),要么阿里的技术很老土。

4. blabla

总结一下,阿里的要求总体比美团低,但是给的工资比美团高(

仅限这两个JD的比较!特地加粗

)。那么问题来了,到底是美团装逼,高要求招人,低要求做事;还是阿里sb,低要求招人,高标准给工资?当然还有一个可能,就是贴这个JD的hr是sb。总的来说,能拿到美团的offer,肯定能拿到阿里的offer。因此优质骚年应该以美团的标准来要求自己(认真脸)。

美团

北京做Java开发月薪达到两万,需要技术水平到什么程度?_第1张图片

分析:

1. 计算机专业基本功和写代码能力是废话,太主观。我们先放着,一会再回来review。

2. “熟练掌握 Java 及面向对象设计开发”=>工作一年以上;“对部分 Java 技术有深入研究”=>熟练IO的各种姿势,或者研究过Java内存模型,有此二者在手,面试官绝对对你刮目相看;“研究过优秀开源软件的源码并有心得”=>去Github找找几个star多的项目来看吧,推荐netty,不要多,一个就好。

3. “了解 SOA 架构理念、实现技术;熟悉常见设计模式”=>维基百科欢迎你,看看就行了;“熟练掌握 Spring、myBatis 等框架”=>过一遍源码吧

4. “熟练掌握 MySQL 应用开发、数据库原理和常用性能优化和扩展技术”=>买本mysql的书来看(认真脸);“NoSQL,Queue 的原理、使用场景以及限制”=>好好看看redis就行

5. “http 协议 搜索引擎”=>维基百科;“缓存”=>Google Guava cache,memcached,redis;“jvm 调优”=>掌握jvm参数(认真脸);“序列化”=>Google protocol buffer;“nio”=>netty;“RPC 调用框架”=>dubbo(垃圾)

6. "xxx优先"=>有最好,没有就算了

7. 美团应该不会2b到考逻辑题或者脑经急转弯,所以这里肯定是结合你做过的项目来说。一般都会问,1⃣️项目架构,问什么选择这个不选择那个;2⃣️碰到的最有挑战/最复杂/最blabla的问题是什么,怎么解决的

8. “高度的创业心和投入度”=>不一定要天天加班,但是碰到问题或者项目紧急的时候要加班,面试的时候要表现出这个态度,哈哈;“技术,业务,blabla”=>不能死关注技术,一定要结合业务来回答面试问题

好了,再回到第一条,“计算机专业基本功和写代码能力”,我们可以综合一下(根据分析2~8),美团要求的可以是一个:(注意“可以”,你这么做了“可以”获得美团面试官的肯定,假如面试官真的是根据这份JD来要求你的话)

1. 对Java语言本身,我们掌握一下内存模型,看一点并发相关的东西(java.util.concurrent包里的类都看一遍),找几篇博客看下weak/soft/phantom reference是什么意思就行啦;

2. 对于JVM,看看书,理解一下Hotspot的常见结构啊名词啊啥的,记几个重要的参数,足以应付面试官了;

3. 熟读netty源码;

4. 略读Spring源码,重点理解关键概念(AOP面试官很爱问的哦);

5. 在维基百科上过一过JD里提到的一些名词;

6. 买本mysql的书看看,高性能mysql那本书就很好;

7. redis或memcached哪个用的多就多看看相关博客。都没用过?建议你看redis

8. 好好包装一下你做过的最nb的项目,准备几个技术难点和解决方法,记住一定要结合业务哦。(什么?没有?没有不会编吗?怎么编?往分布式和高并发方向编会吗?不会?那你不适合互联网。)

9. 多工作几年!

你看,也不是很难嘛。如果上面的几点你都做到了,还拿不到2w的美团高级JAVA开发工程师的offer,那美团肯定是冻结了headcount。我认识的好多远远达不到上面需求的人都在美团呢。

这篇文章分享之前我还是要推荐下我自己的JAVA群:452180294 ,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新JAVA资料和零基础入门教程,欢迎初学和进阶中的小伙伴

PS:面试官问你算法的话,一定要装作特别自信的说:“啊(第二声),算法?一般工作当中不需要自己手写算法吧?一方面是常用的算法,比如排序,查询,都有现成的代码来用;另一方面真需要手写算法的问题一般都是面向特定需求的问题,或者要求效率特别高的地方。这些地方可以结合真正的需求来做。”当然常见的算法的伪代码还是要会写的哦。如果面试官问你红黑树,哈哈,那赶紧跑路。不是谷歌脸书也不是面试算法程序猿的公司问你红黑树,这公司一定是在装逼(认真脸)。

你可能感兴趣的:(北京做Java开发月薪达到两万,需要技术水平到什么程度?)