您的位置:首页 >  新闻中心 > 云通讯公告
  云通讯公告
 

我从阿里面试回来,想和Java程序猿谈一谈

来源:原创    时间:2018-01-05    浏览:0 次

最近小编看了一篇关于面试的文章,标题是“我从阿里边试回来,想和Java程序员谈一谈”,内容不是讲面试前刷题,而是愈加聚集在面试前怎样预备,以及作业傍边怎样学习。感觉总结的很不错,今日就推送出来,期望对我们今后边试有所协助。
以下是面试经:

第一个问题:阿里边试都问什么?

许多人问我“去阿里边试都问了些什么”?,说实话,我只能模糊想起并发、JVM、分布式、TCP/IP协议这些个要害字,详细的问题真的是简直都没记住。并且就算记住了,也通知你了,你也背会了,但在面试中,你被问到如出一辙问题的可能性仍然很小。

乃至,就算你命运好被问到了,你也照着背下来了,也不必定就能对你的面试起到正面的作用,因为面试官如果多问一句,你可能就泄露了,那还不如干脆点说不会更好。

我最初参加的是阿里的社招面试,而社招不同于校招,问题的规模其实是很随机的。因为能参加一些比较闻名的互联网公司社招的人,70%以上都会有个3-5年的阅历。这倒不是说一两年阅历的同学没有机会进这些公司,而是因为这种公司,大部分情况下只招一些比较资深的开发和应届生,而不招那些处于中心阶段的人。而1-2年阅历的同学,往往就刚好处于这个为难的阶段。

关于能有3-5年阅历的这部分人中,每个人的阅历又都不同,所拿手的点也不一样,因而这就会导致每个人的问题和规模都不太一样。

很少说有哪个闻名的互联网公司,比方BAT、京东、360、搜狐、网易等这些公司,其社招面试还有固定的问题和形式,让你能够像应届生面试一样,在面试前靠临时抱佛脚度过这一关。

大部分公司在社招的时分,不光是阿里,其它公司也都一样(因为我在一年多前也参加过许多其它闻名互联网公司的面试,基本上都分为两个阶段的发问。

第一个阶段是主言语自身以及它的高档特性;
第二个阶段是叙述自己的项目,并在中心交叉着问题。
接下来我就针对这两个阶段,谈谈社招面试的预备,而不是去把阿里边试的进程背一遍。

1、主言语自身以及它的高档特性

关于Java来说,它的言语自身以及它的高档特性,都有哪些比较简略在面试中问到呢?

一般情况下,首要有以下知识点很简略被问到。(PS:以下所罗列的,都是一些Java相对而言比较高档一点的知识点,因为这儿谈的是社招,而不是校招)

1)Java的数据结构相关的类完成原理,比方LinkedList,ArrayList,HashMap,TreeMap这一类的。以下简略模仿一个数据结构的连环炮。

比方,面试官先问你HashMap是不是有序的?

你必定答复说,不是有序的。那面试官就会持续问你,有没有有次序的Map完成类?

你如果这个时分说不知道的话,那这个问题就到此完毕了。如果你说有TreeMap和LinkedHashMap。

那么面试官接下来就可能会问你,TreeMap和LinkedHashMap是怎样确保它的次序的?

如果你答复不上来,那么到此停止。如果你仍然答复上来了,那么面试官还会持续问你,你觉得它们两个哪个的有序完成比较好?

如果你仍然能够答复的话,那么面试官会持续问你,你觉得还有没有比它更好或许更高效的完成方法?

如果你还能说出来的话,那么就你所说的完成方法必定仍然能够问你许多问题。

以上就是一个面试官一步一步发问的比方。所以,如果你了解的不多,千万不要唐塞,因为可能下一个问题你就暴露了,还不如直接说不会,把这个问题完毕掉,赶忙切换到你了解的范畴。

2)Java并发包傍边的类,它们都有哪些作用,以及它们的完成原理,这些类就是java.concurrent包下面的。与上面一样,我们也简略的模仿一个并发包的连环炮。

比方,面试官可能会先问你,如果想完成一切的线程一同等候某个事情的发作,当某个事情发作时,一切线程一同开端往下履行的话,有什么好的方法吗?

这个时分你可能会说能够用栅门(Java的并发包中的CyclicBarrier),那么面试官就会持续问你,你知道它的完成原理吗?

如果你持续答复的话,面试官可能会持续问你,你还知道其它的完成方法吗?

如果你还能说出许多种完成方法的话,那么持续问你,你觉得这些方法里哪个方法更好?

如果你说出来某一个方法比较好的话,面试官仍然能够持续问你,那如果让你来写的话,你觉得还有比它更好的完成方法吗?

如果你这个时分仍然能够说出来你自己更好的完成方法,那么面试官必定还会揪着这个持续问你。

为什么说面试的时分要引导面试官,原因就在这了。因为面试官的发问许多时分都是有迹可循的,你如果抓住了他的轨道,能够猜到他下面很可能会问什么,那你在答复的时分就能够往你想要谈的方向去说。这样面试时就会显得愈加沉着,愈加的挥洒自如。

3)IO包和NIO包中的内容。这部分里边NIO会是要点,IO包大部分都会比较了解,因而可能会直接略过,直接问你NIO的内容。

IO包和NIO包的内容相对来说不是许多,首要NIO模型要了解,特别是其间的selector必定要十分清楚它的责任和完成原理。其实NIO的中心是IO线程池,必定要记住这个要害点。有的时分,面试官可能也会问你IO包的规划形式(装饰器形式),为什么要这样规划?

有的面试官还会问你有没有更好的规划,这个时分如果你不知道请决断说自己现在的水平有限,想不出来更好的规划,千万不要信口开河,随意YY。

4)Java的虚拟机的内容。这部分首要包含三部分,GC、类加载机制,以及内存。

一个GC部分简略的连环炮。

面试官能够先问你什么时分一个目标会被GC?

接着持续问你为什么要在这种时分目标才会被GC?

接着持续问你GC战略都有哪些分类?

你如果说出来了,持续问你这些战略别离都有什么优劣势?都适用于什么场景?

你持续说出来了今后,给你举个实践的场景,让你挑选一个GC战略?

你如果选出来了,持续问你,为什么要挑选这个战略?

下面是关于类加载机制的简略连环炮。

首要必定是先问你Java的类加载器都有哪些?

答复了这些今后,可能会问你每个类加载器都加载哪些类?

说完今后,可能会问你这些类加载之间的父子联系是怎样的?

你在答复的时分可能会说到双亲派遣模型,那么能够持续问你什么是双亲派遣模型?

你解说完了今后,可能会持续问你,为什么Java的类加载器要运用双亲派遣模型?

你答复完今后,可能会持续问你怎样自定义自己的类加载器,自己的类加载器和Java自带的类加载器联系怎样处理?

再来一个关于内存的连环炮。

首要必定就是问你内存分为哪几部分,这些部别离离都存储哪些数据?

然后持续问你一个目标从创立到毁掉都是怎样在这些部分里存活和搬运的?

接着可能会问你,内存的哪些部分会参加GC的收回?

完事今后,可能还会问你Java的内存模型是怎样规划的?

你答复了今后,还会持续问你为什么要这么规划?

问完今后,还可能会让你结合内存模型的规划谈谈volatile要害字的作用?

你在谈的时分,必定会说到可见性,那么接着可见性这三个字,还能够持续问你并发的内容。

基本上Java言语自身以及言语略微高档点的内容就是以上部分,如果你能把以上四部分了解的十分透彻,那基本上Java这部分就没啥问题了,因为光以上的内容就够你跟面试官聊很久了。你聊这些聊得久了,天然问你其它问题的时刻就会短点。

你从以上这些问题的进程也应该能感触出来,许多时分,面试官都是顺着一条线一路问下去的,如果你觉得这条线你不了解的话,就要及时拐弯,引导面试官去问其它方面的问题。千万不要一向往下深化,直到自己跳不出来停止,那就尴了个尬了。

2、叙述自己的项目,并在中心交叉着问题

这一部分是面试进程中必问,也是聊得最久的一个阶段。除非你前面的言语部分十分厚实,厚实到面试官问了一两个小时,照旧没有探出你对言语自身的了解究竟有多深。不然的话,你必定逃不过自己的项目这一关,并且一般情况下聊得时刻不会太短。

这一部分内容,一般的形式就是你自己去讲你做过的项目,然后边试官会冷不丁的让你去解说其间某一部分,比方让你解说其时为什么要这么做,或许问你现在觉得有没有更好的方法。而这些交叉的问题,大部分与你的项目所用到的技能有关。而你需求做的,就是充沛、再充沛的去总结自己做过的项目(尤其是最近的一两个项目),挖掘出一个乃至N个亮点,以备于到时分能够让面试官发生眼前一亮的感觉。如果你能到达这种作用的话,基本上离你成功就不远了。

3、额定的加分项

上面两个阶段基本上是必问的,还有一些加分项。这些加分项中,有些内容面试官也会问你(比方TCP/IP协议、算法),但更多的是会先问你了解不了解,你了解的话再持续聊,不了解的话就直接略过了,不至于因为这种问题而直接把你打入阴间。

下面罗列一下这些加分项,如果能够的话,这些加分项仍是要争夺一下的。

1、核算机体系原理。

2、网络通信协议(TCP/IP,HTTP等)。

3、数据结构与算法。

4、闻名开源项目的源码。

5、你自己有很棒的开源项目。

6、你的个人博客。

7、待谈论区弥补。

这几项傍边,关于前1-3项,如果你之前就比较了解,仅仅因为时刻问题忘记了的话,仍是能够临时抱佛脚一下的。至于后边4-6项,就需求你日常的堆集了,不是一时半会儿能做到的。如果你素日里没有堆集,那么后边这三个加分项只能扔掉了。

4、与你职位相关的内容

其实这最终一项是对前面三项的弥补,你应该尽量去主攻和你面试的职位相关的内容。比方你面试一个实时核算的职位,那么你的算法最好要凶猛,关于闻名的实时核算开源项目要了解,最好阅读过源码,并且还要对分布式体系有必定的见地。

因而,这个第4部分没有详细的内容,仅仅提示你,如果你很清晰自己的面试职位,最好在面试前预备的时分,尽量朝职位的需求方向挨近,这样成功的可能性更大。