[招聘|实习·全职·内推] 阿里面经(附回答)面试必看

admin · 发布于 2017-09-26 10:03 · 1036 次阅读
1

一面(这可能是所有面试发挥最好,1小时)

问题1:项目难点。说了一下用到java反射机制的地方以及多线程建索引。
问题2:项目中用到的最复杂数据结构,回答没有。。。然后他问TreeMap听过没有,为什么查询速度会很快
答:treemap底层实现是红黑树,红黑树是一种平衡二叉树,它的时间复杂度是O(H),h为树的高度,而红黑树通过它五个性质保证了树的高度为O(logn),所以它的查询速度快(注意此处,故意提到5个性质,之前内推实习问到红黑树)。果不其然。
问题3:红黑树的5个性质是什么,快速回答之。
问题4:Object类的方法有哪些。这个问题恰巧被寝室的问到过
答:getClass/hashCode/equals/clone/toString/notify/notifyAll/wait/finalize
问题5:你刚才提到了hashCode方法,如果不重写hashCode方法会导致什么问题
答:java编程思想上面有,object的hashcode方法是根据内存地址来hash的,如果你需要根据对象的某个属性来存取的话,就会找不到该对象,重写hashcode一般必须重写equals。。。
问题6:TCP建立连接之后怎么保持连接
答:之前没有了解过,不知道是通过心跳包来保持连接的,随便扯了下TCP的三路握手。。。囧~~
问题7:说一下java集合框架
答:balabalabala,最后提到并发库,concurrentHashMap(当时紧张,还忘了怎么拼)。
问题8:concurrentHashMap为什么性能高
答:分段锁,16个写锁,重复读锁。并说了一下hashtable的性能为什么低(整表加锁)。
问题9:了解存储过程么,说一下优缺点。
答:无语。。。缺点还真没想过,先说的优点,缓存提高性能、精简代码、增加安全性、降低网络流量。本想蒙混过关,结果追问缺点呢。。。呃,可能就是存储过程没写好不好用吧,而且不灵活。。。= =! 面试官:好的,下一题。。。
问题9:数据库优化性能
答:这个在java面试宝典上面有,建立索引,建立分区,尽量使用固定长度的字段,限制字段长度;增加缓存使用连接池;减少SQL语句的比较次数,限制返回的条目数。。。还有一条想不起来,面试官提示:你刚从数据库,IO,语句方面说了可以优化,还有没有其他方面可以优化呢? 突然想到了java方面,对于反复使用的语句,使用preparedStatement。追问:preparedStatement与普通的statement有什么不同。答:preparedStatement会预先编译语句,并缓存改善性能。(阿里面试官就是不错,不仅提示,还帮总结的)。
问题10:简述一下tcp/ip协议
问题11:应用层有哪些协议
问题12:听过DNS劫持么
答:听过。。。怎么预防,不知道,随便说了个MAC地址绑定。。。无语~~后来发现潘爱民版的计算机网络上面有。
问题13:中国最大的DNS提供商
答:不知道,之后查资料发现,DNS提供商有360,阿里巴巴...好吧。。。
问题14:http端口,tomcat端口
问题15:Http响应状态号,服务器错误状态号是多少。
答:只知道404 not found。后来查阅发现服务器错误是5XX,请求错误是4XX,重定向是3XX,成功是2XX,消息是1XX。
问题16:get和post的区别
答:从逻辑上get是安全的,post是不安全的。get一般用于获取数据,post可以用来提交数据,如表单。追问:get不能提交数据么,可以,不过需要跟在url后面,这样安全性会降低,如果使用url传递用户名,密码的话会非常不安全,因为全部为明文的。而且get有最大长度限制,因为url每种浏览器都有一个最大长度。
问题17:开放性问题,如果让你设计淘宝架构,用于支持双11的访问量,你怎么设计。
答:1、减少http请求,将js,css文件打包成一个文件。其实还有页面静态化,之前项目有涉及。
2、内容分发CDN,我回答的是根据用户的IP,将用户请求负载均衡到就近的数据中心。追问:如何负载均衡?可以根据IP hash生成,根据请求响应延时负载均衡。追问:这几种负载均衡属于哪种负载均衡,答不知道。他说属于软负载均衡。然后我问他还有哪种负载均衡策略。他说还有硬负载均衡。然后我再问,这样的话是不是用软件做负载均衡就是软负载,硬件做负载均衡就是硬负载。他说也可以这么理解,哈哈。最后提示我其实可以用DNS做负载均衡,这就是内容分发的思想了。
3、在每个数据中心中建立缓存。web代理的思想(详见计算机网络,潘爱民版,神书,师弟师妹不要错过)。
4、tomcat使用短连接,或者降低keep-alive时间。追问长连接和短连接的区别,哪个版本使用长连接。(此处也故意提高短连接,这是一个面试技巧,尽量提到相关的技术)。
5、数据库优化,具体方法之前问过。
问题18:还有什么补充的。说了一下项目用到的主从复制思想。
二面 (比较水,只问了30分钟,我以为挂了,失败从此开始)
问了下项目经历,项目,索引是怎么存储的。作为项目组长人员怎么分工的。爬虫。jdk源码(说了个hashmap),Lucene源码。一面二面总结:可能一面表现太好,二面问的比较简单,发现计算机网络,数据库,以及java并发比较重要,jdk源码,以及项目源码也很重要。二面完了,8天,杳无音讯,我以为挂了。开始新的一轮复习:补了一下网络,数据库,effective java,java并发(java并发编程实战),看jdk源码,复习项目,看lucene源码。这个时候千万别放弃。。。因为阿里状态一直不会变,特别是有些一面明显挂了得同学,状态一直是面试中,所以这时候对阿里开始有点反感。再加上看到阿里有个搜索部,而我想做搜索。最最重要的是我知道自己的性格,如果阿里过了,我肯定是提不起劲复习的,因为我喜欢搜索,所以百度是我的理想选择。总之,这个时候心里就已经放弃阿里了,开始全身心投入源码学习中了。
HR面(在心情失落的状态下看了几天书之后,晚上7点突然接到电话,30分钟)
因为之前已经放弃阿里了,接到电话还没有反应过来。。。态度一直比较冷淡。注定失败。失败了才开始后悔放弃的太早了。。问:本科到研究生的经历
因为二面介绍过,所以我几句话说完。。。面试官大呼,不要那么快。。。好吧,这就是失败的开始。这个地方要注意了,没有经验的师弟师妹肯定会觉得一面问过的问题,二面问相关的可以回答的粗略一点。实际上这种想法不好,首先二面面试官根本不知道一面问的什么问题,即便是有记录也是简短的1、2条,粗略的回答会让面试官觉得你不了解,或者不自信。
问:兴趣爱好
看书。。。好吧,只说了这一点,加上当时非常累,表现出不爱说话的样子,可能面试官觉得我比较孤僻。。。兴趣爱好最好加上一条运动,因为运动容易让人觉得乐观。
问:项目遇到的问题相关的几个问题
这个同样没有回答好。。。
问:你还有其他什么问题
问了个入职培训。。。这个同样是败笔,也许是前面表现不好,这个时候问什么都是败笔。。。
总结:因为太累了,把话语主动权叫给了HR是一大失败。后来发现,面试也要遵循28定理。面试官只说20%的话,自己最少要说80%的话。黄金法则:80/20---你要承担起80%的谈话而面试官只会说20%。白金法则:你必须试着控制面试的节奏和话题。钻石法则:对于没有把握的问题,抛回给面试官。注意这三个法则。。。
最后就是如果你想学好JAVA这门技术,也想在IT行业拿高薪,可以参加我们的训练营课程,选择最适合自己的课程学习,技术大牛亲授,7个月后,进入名企拿高薪。我们的课程内容有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,群号为:230419550

注:加群要求
1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。
2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。
3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。
4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。
5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!
6.小号加群一律不给过,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
共收到 0 条回复
暂无回复。
回帖
B Color Image Link Quote Code Smilies
Command + Enter
快速回复 返回顶部 返回列表