阿里Java后端电话面试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wdays83892469/article/details/79823916

生平第一次面试,还是阿里,非常紧张。因为是校招,所以面的比较简单。都是我简历上说熟悉的东西,回答的不是很理想。面试官说我广度还行,深度差的比较多。
面试官:“你好同学,我是蚂蚁金服的,现在方便面试吗”
我“方便方便”
面试官“请简单介绍一下自己”
这里注意吐字清晰,说清楚学校和专业
面试官“你说你最近是在学算法是吧”
问了我两个题
第一题 我这里有八个球,其中有一个有气泡,称几次可以把有气泡那个称出来
二分查找,三次
那么我如何称两次就锁定呢
我。。。。
第二题,上台阶的题听过吧。每次可以上一阶或者两阶,如何解决这个问题
有三种方法,递归 dp 还有用行列式可以以O(logN)的时间复杂度算出来
递归的怎么写
核心代码return f(1)+f(2)
有了解过HashMap吗,它的原理是什么,put和set方法如何实现
java的HashMap底层是红黑树实现的。
红黑树是1.8以后,之前是用什么实现的
我。。。。。(链表数组。学过没想起来)
那么它的put和set是怎么实现的
HashMap和HashTable哪个是线程安全的
HashTable安全,HashMap是不安全的
他们的底层实现的区别是什么
。。。
HashMap如果遇到hash碰撞如何解决
我回答的是hash扩容,答非所问

我说了平衡搜素二叉树的调整策略。。。答非所问
那么你说你熟悉mvc设计模式,请谈谈对它的理解
将显示层,模型层,控制层区分开,有利于程序的编写和维护
请简述servlet的生命周期
我。。。。(忘了。。。这个真的不应该,太菜了)
你是熟悉SSH框架是吧,Struts2和Struts1有何区别。
Struts1有个大漏洞。。。。。我不熟悉之前的版本,学的时候已经是2了
谈谈你所理解的Spring框架
它是一个一站式管理框架,能够很方便的和其他框架整合,将创建实例对象通过IoC交给Spring框架方便管理。
创建实例对象有几种方式
new,反射
Spring框架使用了哪些设计模式,说你知道的
单例模式,工厂模式,代理模式。。说了六七个
Spring中为何要使用单例
我,线程安全?
为什么要通过Spring的控制反转创建对象,工厂模式不也可以单例创建对象吗
工厂模式下如果代码发生变动要做修改,而Spring框架可以通过反射机制动态创建。
bean对象在spring中是如何注入的
注解和配xml文件
autowared和resource的区别
。。。。。
会git的基本操作,说说你常用的命令
push 。。。。
如果我们有300人开发同一个项目,我需要删除其中某一条分支,命令怎么写
。。。。。。。。
你说你了解在linux下的基本操作,那么linux下查看端口用哪个命令
。。。。
。。。。
说几个你知道的
cd ls cp tar install ……….
你简历上没写分布式,对这个东西做过了解吗
了解过一点negix反向代理
谈谈你所理解的分布式,它的优缺点在哪
一部分机器出问题不会影响业务,只是处理速度略微下降。。。
我巴拉巴拉。。都没说到点子上
negix是如何实现反向代理的
有一个分配任务的服务器,将每条请求动态分配到所有服务器
如何保证每一次访问都是同一台分布式服务器处理我的业务
请求中绑定ip,每次这个ip过来我就将它分配到它第一次访问的机器
negix默认超时时间是多少
。。。。。75秒
这75秒是从访问开始还是光是在项目等待的
从访问开始
这块不太了解。。。但面试官好像很看重分布式这些多问了点

你是网络工程专业的,简述一下HTTP协议与HTTPS协议的区别
吧啦吧啦
简述一下我从访问www.baidu.com到响应是怎样一个过程
吧啦吧啦
UDP和TCP是区别,适用情景
这个比较简单,问的很浅

你说你了解过MySql优化那么请问一下我需要删除一条数据你怎么坐
delete语句
面试官。。。。你确定吗?
有没有了解过软删除
提示了我一下我记起来了,回答通过改变某个字段让这条数据不显示,从逻辑上删除但它其实还在数据库里
对,软删除又叫逻辑删除,每条数据都是很宝贵的,不能轻易的delete掉
问了我写的几个项目中我如何设计ER图(简历里写的项目)
。。。。不太理想
事务知道吗
知道
有几种事务隔离级别
四种,分别是(巴拉巴拉)
如果是这种情形,举了一个例子,我的查询和修改操作是同一个实务
。。。。。
你自己举实际例子说明一下什么隔离级别会出现什么样的问题
。。。。
了解实务锁吗
乐观锁和悲观锁?
他们有何区别
悲观锁默认每一次操作都会被干扰,所以每次都给事务加锁,等这次事务结束后其他的才能操作。
乐观锁是每一次默认自己的操作不会被干扰,等提交的时候再看自己原来的数据是否被修改。
乐观锁遇到那种情况怎么办
回滚数据
面试官。。。。确定吗?
我。。。。。。
了解过数据库索引吗?(问的都是我说了解他才问,比方问前端的时候我说不是很了解,只是对js和jquery是会用的档次)
是用B+树实现的
那么为什么不用b树不用其他树,用B+树?它好在哪,或者说它为什么快?
。。。。。。。
你了解jvm吗,简述遍历过程和jvm的原理
。。。。。。
面向对象语言中多态的好处
吧啦吧啦
了解线程吗,实现多线程有几种方式
两种,继承Thread类和实现enable接口
他们的优缺点各是什么
。。。。。。
了解自动拆装箱吗,Integer与int的区别
java是一门面向对象的语言,但是它的基本数据类型却不是一个对象,必须将int转成Integer才可以使用面向对象的方法
Integer i=10;int i=10;==的结果是什么
integer i=300;int i =300;==的结果是什么
。。。。你应该了解一下自动拆装箱的范围

你说你了解单例模式,那么为什么使用单例模式
保证每个类只创建一个实例化对象
使用单例的好处在哪里
。。。。。
创建单例有几种方式
懒汉式和恶汉式
它们的区别的是什么
一个是用到的时候才创建,一个是一开始就创建线程
哪个是线程安全的
恶汉式
它如何实现线程安全
从一开始就创建线程
如何加锁
。。。。。。。。
双锁怎么用,使用的好处
。。。。。。
为什么要判断两次线程存在?括号里里面和外面都要判断?

//就这里为啥判断两次
public class Singleton {  
    private volatile static Singleton instance; //声明成 volatile 保证编译器不进行优化  
    private Singleton (){}
    public static Singleton getSingleton() {  
        if (instance == null) {                           
            synchronized (Singleton.class) {  
                if (instance == null) {         
                    instance = new Singleton();  
                }  
            }  
        }  
        return instance;  
    }  

} 

。。。。(面试官求你了别问了,我真不不应该把熟悉单例设计模式写上去)

面试官,那就考察到这了,你距离我们招实习生的水准还有点差距,不是歧视你们学校。
理解理解。。。。。我知道我回答的很不理想,通过面试我认识到自己的诸多不足
还有什么其他想问的吗
针对我的情况能给我点学习建议吗。
多看源码,你简历写的《MySq深入浅出》 《剑指offer》《第一行代码》我也都看过
问你的很多问题都是书上的,你还需要认真学习,建议看书学习而不是视频,虽然看书比较慢但是你会对原理有深刻理解。如果以后想进阿里还需要在这些方面多下功夫,还有尤其阿里特别喜欢多并发和分布式的技术,像双十一那些后台是如何做到的。
还有MyBits,meaven了,redies解吗,
正在学,Mybits学习成本低一点,会sql就可以学
现在Hibernate5的版本以后这个框架又越多人来用,了解一下5的新特性。
SpringBoot了解吗,正在学,它是简化Spring框架那么默认配置。
如何实现简化的(面试官好像突然来了兴趣又提问了。。。。放了我这条咸鱼吧)
它直接是jar包,而且内置tomcat,默认配置是通过一个注解让stater来配置那些默认的配置信息。
随便聊了几句,多看开源项目,GitHub的,阿里很看重开源,坚持写博客是个好习惯。。。。。,以后想进阿里把之前说的那些都搞懂,再看看分布式那些学深一点,不要停留在会用就行这个程度。
我是不是您面试的里面最弱的
。。。。。。。

总结:
阿里需要的实习生就需要源码级别的阅读能力,不论是jvm,框架,还有java语言的底层,对数据库一定要非常熟悉《MySql深入浅出》一定要认真学习一遍,网络协议,新兴技术,尤其分布式和高并发好好看。如果你写熟悉,人家会按照掌握的程度考,写掌握按精通的标准测
我差的还好远好远。。。。以后要深入学习。现在的技术和学习强度远远不够。

猜你喜欢

转载自blog.csdn.net/wdays83892469/article/details/79823916
今日推荐