• 阿里--面经 搜集


    面经搜集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号上午面的,过了个周末,结果这两天就出来了吧,

  • 相关阅读:
    2014,成为更好程序员的7个方法
    联想集团大裁员,血淋漓的教训:公司只能给你位置,却无法给你未来!(转)
    Oracel数据库连接时出现:ORA-12518:监听程序无法分发客户机连
    Could not find a version that satisfies.... No matching distribution found for .....
    深度学习(七)U-Net原理以及keras代码实现医学图像眼球血管分割
    深度学习(六)keras常用函数学习
    np.random.random()函数 参数用法以及numpy.random系列函数大全
    2019最新win10 安装tensorflow1.4(GPU/CPU)+cuda8.0+cudnn8.0-v6 + keras 安装CUDA失败 导入tensorflow失败报错问题解决
    c++ 网络编程课设代码 网络编程入门教程 ---目录
    c++ 网络编程(十一) LINUX下 初步制作基于HTTP的WEB服务器
  • 原文地址:https://www.cnblogs.com/excellencesy/p/8605239.html
Copyright © 2020-2023  润新知