本文作者:阿里P8高级技术专家,面试总计超过500+候选人,文末有这位大佬提供的999道面试真题资料可以领取,详情请见文末。
裁员阴影下的互联网圈目前一片哀鸿遍野,所以居安思危、有备无患总是没错的。
若考虑跳槽,首推阿里。面试相对简单(面经多),Java需求量大,放张截图随便感受下:
阿里P8大神:这4道面试题我一定会问,答好3题P6稳,全部OK考虑P7
在job.alibaba搜索Java,最后一页职位也足够新鲜
阿里牛逼!Java YES!(破音)
各位兄弟简历投起来(or 找我内推~是的,**我的团队也严重缺人)
这段时间面了很多Java,普遍问题是:编程基础还ok,但就是很难在面试中发挥出来。这样下去招人要累死……故总结此文,希望能帮到想要进阿里P6 Java的兄弟。
考察源码,排除【码农】。
因为大厂从来不招只会写代码的【码农】,绝对不能停留在只会编程的层面。
怎么做?看我口型:穷根究底,多看源码!
源码数量多、理解难,用途迷。对于P6的面试准备,熟读并背诵以下源码基本够了:
JVM底层Spring家族ORM-Hibernate/Mybabit线程池/数据库连接池高可用接入:Netty
源码面试,真实还原:
“ 问:Java 中操作字符串都有哪些类?它们之间有什么区别?”
这题熟悉,稳了。
一般人认为的无懈可击回答:
分别是String, StringBuffer, StringBuilder。
区别是String声明的是不可变的对象,每次操作必然产生一个新的对象。StringBuffer和StringBuilder都继承自抽象类AbstractStringBuilder。StringBuffer具备线程安全性,在使用场景上,并发必选StringBuffer,迭代必选StringBuilder,普通场景选String,避免中途不必要的类型转换开销。
回答完毕,打完收工。
面试官内心OS:只掌握到这种程度?那随便再问两个问题就让回去等通知吧。
实际面试官想听到的【更深入的】回答:
StringBuffer和StringBuilder都继承自抽象类AbstractStringBuilder!
然后追加解读:
final 修饰—>不可变—>每次操作都会生成新的 String对象,对比StringBuffer和StringBuilder —>值可变、拼接字符串开销。
此时面试官会反手祭出多线程大法,追问线程安全性。
机智如你(查源码,找synchronized、线程锁)得出结论:StringBuffer具备线程安全性。
面试官再追问:StringBuffer具备线程安全性,迭代开销又小,那我们实践中首选它就ok了吗?
。
。
。
这就是大厂的面试套路:
简单的话题引入 — 问题层层递进 — 再考察深挖背后的原理
目的即是考察对源码的深挖意识——技术钻研与批判性思维。
越是看似简单的题目,越要小心,紧跟着的套路会更多。
要熟读源码,要穷根究底,还要能show出优良coding style,否则就很容易狗带。
关键词:业务对口、高可用架构、实践经验
兄弟们有没有觉得要呵呵。
经验这东西,有就是有,没有就是没有。强行加戏只会让面试官和你一起尴尬。
是的,要时刻表现出大厂的程序员思维,这非常重要。
String.format("%0" + n + “d”, 0).replace(“0”,“非常重要”)
区别于小厂“实现就好”的思维,大厂程序员思维要求在需求“实现”的同时,还要考虑面对动辄亿级的数据量。
所以回答任何面试问题的着眼点,要重点突出解决方案和架构的可扩展性、可用性、实时性。
阿里的HR和价值观文化想必大家都有所耳闻,技术面试过关斩将,结果折在HR这岂不是想死的心都有。尤其是应对善于玩出各种新花样的阿里HR们。
举个例子 :
“ HR:如果拿到了offer,但是做了一段时间发现自己根本不合适这个职位,你会怎么办?”
错误回答A:直接辞职/找领导谈调岗
( 头铁的耿直boy…这么想也不能这么说啊兄弟)
错误回答B:即使发现不合适,我也会坚持
(不能跳槽,那就努力表达出不惧挑战的样子会比较加分??)
正确答案:既不铁憨,也别鸡贼。要表现出“虽然遇到了暂时的困难,但我认可这个职位、公司和团队”,“我会更主动请教同事、主管,快速提升能力,尽快适应岗位需求”。
除了上面的题目,当然还少不了这些题目,阿里大佬亲笔传授:
领取方式:搜索Q群:179737618找管理领取!!!
1000道Java工程师面试题,针对Java工程师面试出品。
内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈
内容涵盖:Java基础、算法与编程、htm&JavaScript&ajax部分、Java Web、数据库部分、XML部分、流行的框架与新技术、软件工程与设计模式等等
800页算法高分宝典,教你如何从小白成为算法高手