阿里--面经 搜集

面经搜集1

作者:剑指MS链接:https://www.nowcoder.com/discuss/3873?pos=10&type=0&order=1来源:牛客网

(1)自我介绍,做过什么项目。
(2)java虚拟机的区域如何划分,每一个区的动能,这一块自由发挥。
(3)双亲委派模型中,从顶层到底层,都是哪些类加载器,分别加载哪些类?
(4)有没有可能父类加载器和子类加载器,加载同一个类?如果加载同一个类,该使用哪一个类?
(5)HashMap的结构,get(),put()是如何实现的?HashMap有哪些问题?
(6)ConcurrentHashMap的get(),put(),又是如何实现的?ConcurrentHashMap有哪些问题? ConcurrentHashMap的锁是读锁还是写锁?
(7) HashMap与HashTable的区别
(8)sleep()和wait()分别是哪个类的方法,有什么区别?synchronized底层如何实现的?用在代码块和方法上有什么区别?
(9)什么是线程池?如果让你设计一个动态大小的线程池,如何设计,应该有哪些方法?
(10)什么是死锁?JVM线程死锁,你该如何判断是因为什么?如果用VisualVM,dump线程信息出来,会有哪些信息?这一块问的很多....问的我懵了. 因为并没有实际操作过 = =
(11)查看jvm虚拟机里面堆、线程的信息,你用过什么命令?我只用过图形界面VisualVM。。。
(12)垃圾回收算法有哪些?CMS知道吗?如何工作的?
(13)数据库中什么是事务?事务的隔离级别?事务的四个特性?什么是脏读,幻读,不可重复读?
(14)数据库索引的结构有哪些?我说B树和B+树,他说只有这两个吗。我又说全文倒排索引。然后介绍B+树的结构。
(15)数据库中的分页查询语句怎么写?
(16)什么是一致性哈希?用来解决什么问题?
(17)Redis的存储结构,或者说如何工作的,与mysql的区别?有哪些数据类型?
(18)项目中用到redis,为什么选用redis,了解其他NoSQL数据库吗?在你的项目中是如何运用redis的?key是什么,value是什么?
(19)归并排序的过程?时间复杂度?空间复杂度?
(20)你平常用什么排序?快速排序。说说在那些场景下适用,哪些场景下不适用。
(21)你在项目中做什么?因为我用到Solr,他就问我Solr是如何工作的?

上面问的每一个问题里面,都问的很细节。还有一些问题记不清楚了。。


下面是一些个人问题:
(1)你为什么来南京?
(2)你成绩怎么样,能排多少名?
(3)说说你的优缺点?
(4)你参加过哪些比赛?
(5)你的问题?

面试完,发现已经7点了。

总结:
他上来就跟我介绍他是做什么高并发,大数据量什么的。。。 我这一个在校学生,哪搞过什么高并发。
这一面总体技术问的没一面多,扯了会个人问题,项目问题。但是问的深度明显感觉还是很深的,而且问的很细节。尤其是虚拟机和多线程那一块,问到我不会为止。而面试最后我问他的评价也是我知道的挺多,但很多没有深入了解,面试不是一场考试,需要在实际中真正动手解决问题。

我需要复习的东西还有很多,很多东西以前看过,但时间长了就忘记了。回答的时候,没有回答的很全面。

最后还是等通知,一个星期或者两个星期会有通知。不知道会怎么样。。
 

面经搜集2

作者:平行世界
链接:https://www.nowcoder.com/discuss/69429
来源:牛客网

在牛客网上获取到很多知识和信息,现在反馈一波,希望能对广大找实习的同学有所帮助。
个人情况:EE方向渣硕,二月末内推了阿里集团某部门Java岗,约三周完成了所有面试。

面经如下:

一面 (简历评估):
1、自我介绍
2、TCP与UDP的区别
3、TCP三次握手说一下(把流程说一遍,这里以为会继续问为什么不是两次或者四次,结果没有)
4、看你项目用到线程池,说一下线程池工作原理,任务拒接策略有哪几种
5、进程和线程的区别
6、ArrayList与LinkedList的区别
7、线程安全与非线程安全集合说一下,底层怎么实现的(hashmap,concurrenthashmap)
8、Java内存模型,方法区存什么
9、数据库事务隔离级别说一下
10、synchronized和lock区别,可重入锁与非可重入锁的区别
11、看你的项目用了悲观锁和乐观锁,说一下区别
12、算法题:圆圈中最后剩下的数字


二面 (部门主管):
1、说一下Spring的IOC和AOP,底层什么原理
2、动态代理有几种,Jdk与Cglib区别
3、数据库三大范式
4、左连接和右连接说一下,内连接呢
5、数据库索引有几种
6、数据库引擎你认识几种,innodb 和myisam 区别,你的项目用到哪个引擎
7、若hashcode方法永远返回1会产生什么结果
8、Error与RuntimeException的区别
9、引用计数法与GC Root可达性分析法区别
10、双亲委派机制说一下
11、算法题:找出一个数组中第100个小的数字(堆思想解决)

三面&四面 (这里合在一起写了,分别是部门A总监与B总监,本以为三面完了就是HR面,结果隔天B总监打过来说补一轮技术面~~三面和四面更多的是问项目,基础问得不多):
1、volatile关键字作用
2、看你项目用到策略模式和工厂模式,说一下区别
3、模板方法模式
4、开闭原则懂吗,说一下
5、NIO说一下你的理解
6、AtomicInteger底层原理
7、CAS机制会出现什么问题
8、还用过并发包哪些类
9、你实习的本地缓存过期策略怎么设置,一致性怎么保证
10、分布式理论懂多少,说一下(这里我说了CAP,Base,paxos)
11、分布式事务有了解吗
12、RabbitMQ消息队列丢失消息,重复消费问题

五面(交叉面,蚂蚁金服的面试官,别问我怎么知道的,说来话长~~简短的20分钟,没问多少就挂电话了,貌似凉凉~~)
1、学习成绩
2、有参加过算法比赛吗
3,Redis和memcached
4、Redis集群宕机,数据迁移问题
5、看你项目用到Spring boot,那有用过Spring cloud吗
6、RPC说一下
7、说一下你对微服务的理解,与SOA的区别


六面(HR面)
1、平常怎么学习的
2、兴趣爱好
3、觉得自己前面几轮面试怎么样
4、除了Java还研究过其它什么技术(我说AI,区块链)
5、跟我介绍一下区块链~
6、怎么看待国内区块链的发展
7,跟我说一下你认为最具有挑战性的项目
8、问我还参加了什么公司的招聘
9、如果有网易游戏,腾讯,阿里的offer你会选择哪个
10、英语10分钟交流(瞬间懵了,这里估计是部门有英语交流要求)

面经如上,有一些问题确实想不起来了,请谅解。
总体来说面试难度没有我在其它大佬们的帖子看到的这么难,都是基础加项目,另外也可能是因为我的心态一直比较好,所以面试发挥还算OK吧~
HR说面试结果会在4月份中旬出来,估计是进备胎池了,慢慢等吧,继续复习,准备其他公司招聘。

有后续会继续更新~

面经搜集3

8月16号下午收到阿里一面的通知,距内推简历提交已经有三周了,还以为简历被刷了呢。通知8月17号上午进行一面,有些担心,有些激动。在4月份时,大家都忙着找实习时,我没找,一方面是实验室导师不让去实习,另一方面觉得自己没准备好,呵呵。第一次参加面试,完全不知道该怎么准备,于是晚上准备了个自我介绍,看了下JAVA面试宝典。

        17号9点接到电话,面试官简单的介绍了下部门,是杭州淘宝搜索部的,然后开始步入正题,让做个自我介绍,接着就问问题,一面的问题相对是比较基础的,如下,顺序部分先后:

        1.什么是网络虚拟化(我专业是SDN,项目上有涉及这个)

        2.Java中HashMap和HashTable的区别

        3.面向对象的特征

        4.OSI七层协议

        5.Java垃圾处理方法

        6.线程池中线程的状态,如何转换的

        7.实现多线程的方法

        8.Hash算法中如何解决Hash冲突问题

        9.使用过的Java开源软件有哪些

        10.设计模式中的单例模式

        11.我项目中的餐厅服务系统中,如果同时有100个人点菜,会造成a)资源不够,b)服务器端厨师调度压力过大;我是怎么解决的

         我说当时做的时候没有考虑到这一点,面试官说没关系,不是什么知识点,就是想想怎么处理,于是我给出了两种处理方式,一是在客户端上给出当天餐厅还能够提供某种菜品的数目,而是设置一个队列缓存,将同时到达的以一定顺序逐个请求调度。两种方案的都是有问题的,记得之前看过淘宝对订单的处理方案:增加服务器个数,将请求分派到不同的服务器上,实施负载均衡,面试官估计是想得到这个答案,不过自己当时没想到。

        12.我自己算法解决过什么问题

        13.数据库和Linux简单问了下

        我说不是很擅长,面试官有些惊讶,应该是觉得我们研究网络的应该擅长Linux吧;

        时间已经过了有50多分钟了吧,随后给了个网址,让编程,四个问题

        1.将一个字符串反转,要求空间复杂度低

         我用了个StringBuffer将字符串从头到尾遍历一遍,得到新串。显然不是较好的方法,于是问面试官说这是最先想到的,可以改吧,他说没关系,写出你觉得更好的,然后我换成字符中点为对称点,两侧进行交换的方式,只需要额外的一个字符空间,也降低了时间复杂度

        2.设计一个单例模式

        我想了一会儿,说设计模式看过,但是不常用,就忘了,直接跳到有把握的第四题

       3.实现一种解决hashCode 冲突的方法;

       在之前问的时候我隐约记得链地址法,打算用这个写呢,有些卡顿,当时面试有近80分钟了,所以说了一下思路

       4.快速排序算法

       写完后有些小问题没注意,后来才想到的;1.分治法没有写结束条件,也就是start和stop相等时直接返回 2.基准值我选的array[start],写循环时应该先移动右边指针,再移动左侧的,但是写反了;

      最终让我自己设计一道算法题目,然后写出来;我说在编程中遇到的动态规划法比较巧妙,讲了一下此类问题的大概做法。想了半分钟,没想到合适的,跟面试官说脑子有些混乱,一时想不到,面试官很理解的说没关系,已经面了一个多小时了,很正常。然后说面试就到这里吧,他会通知他的主管再面试,就这样结束了一面。

      面试总结:一面感觉还是可以的,80%以上的都答出来了,面试官也相当nice,感觉你会但是一时想不起的会提示下,问到垃圾回收方法就是这样。平时学习的时候,尽量学的深一些,Java面试宝典只是罗列了下知识点,看了容易忘,还容易混,我真正在面试中加分的点应该是我之前看了很多技术博客,面试时虽然有些专业名词忘了,但是从实现原理上解释了一下,想来这也是他们乐意看到的吧。

     18号下午,接到主管电话,约到19号早上9点进行视频二面;

     二面问题明显比一面问题要深,而且有效的避免了我擅长的计算机网络和操作系统,呵呵~

     跟主管打了个招呼,也没自我介绍,直接发个题让直播编程。

     题目比较简单,n个人围成一圈报数1,2,3,报到3的人退出,找到最后留下的那个人。

     花了十分钟左右写完的,有个小的编译错误;方法如下,建立一个boolean数组num表示退出情况,用temp++%n表示指针位置,在没有退出条件下,count++ == 3时,将num[temp]设为true表示退出; 让讲了下逻辑,语言没组织好,面试官勉强听懂了。

     后来又问了单例模式中volatile,一面时候问过单例模式,没说好,结果二面这个又不会,只说了下volatile的作用;问了一些Java虚拟机的东西,基本都不懂,然后面试官给推荐了五本书:Java虚拟机精讲,Java编程核心技术,Java并发编程技术,深入理解Java虚拟机,实践Java虚拟机。我表示回头一定好好看看,呵呵~

     由于和Java相关的项目基本没有,都是SDN相关的,因此没聊几句项目, 之后就是主观问题了,诸如做过自豪的一件事是什么,觉得自己的优点是什么,有什么问题要问面试官的等等。

     主观的问题从来没想过,感觉讲的不太好,就这样面试了近七十分钟结束。

     二面总结:面试的不好,有些问题虽然明白,但语言没组织好,比如编程题;主观问题上,从没有想过,答的也不好。Java只学了半年,很多东西都不了解,SSH框架不懂,Java虚拟机没看过,这些都是面试中的减分项;上一个面试官中不懂的问题,回头还得好好百度一下,第二次可能还会提到;面试中语言表达非常重要;关于自己优缺点,自己自豪的事等还是要想一想的,跟我这样听到后就懵逼了就不好了。

     19号上午面的,过了个周末,结果这两天就出来了吧,

原文地址:https://www.cnblogs.com/excellencesy/p/8605239.html