0x00 面试通知
- 自从笔试通过后被晾了差不多半个月,30号晚突然收到多益的面试通知,面试时间为31号早上11:40,woc这么快,赶紧吃了饭回来准备一下
0x01 面试过程
- 早上九点多,hr突然打电话过来说面试提前到了10点,我赶紧登陆了战盟,发送了面试确认
- 大概10:19,面试官通知面试,但是战盟不识别摄像头,改为qq视频
- 面试开始了,整个过程持续了整整有30分钟,问题(不完整)整理了一下,贴在下面
- 自我介绍
- 做过什么项目,觉得特别有成就感的是哪个,用了什么技术,有没有做过web服务端项目,用了什么技术?
- 有没有做过什么项目使用了缓存机制的?
- 谈谈对消息队列的理解
- 堆和栈的区别,哪个快些?
- 引用类型和值类型的概念与区别?
- 接口和抽象类的区别?为什么使用接口和抽象类?
- 进程与线程?
- 使用线程的优点是什么?在什么情况下使用?
- 手机APP消息推送的机制?
- 有没有使用过Redis或MongoDB?
- TCP三次握手,四次挥手?为什么要三次握手?服务器断开与客户端断开有什么区别?
- 使用过什么中间件?
- 对事务的理解?
- 非关系型数据库与关系型数据库的区别?
- MySql中,select * from table where field=null 为什么无法匹配空值?
- varchar 与 char 的区别,哪个比较长,varchar(32)代表什么?
- cookie与session的区别,通过什么将cookie与session进行匹配?
- 如何在多线程中共享变量?
- Web中有哪些漏洞攻击方法需要防范?
- 对加班的看法?
- 最近了解什么新技术?
- 编程题:实现一个函数, 输入两个版本号(随机输入二位到四位),比较两个版本号的大小。
输入示例: 1.2.1 1.10.2.0(下面贴我的烂代码,考点主要有正则表达式,字符串转Integer)
public static int comp(String a,String b) {
String[] k=a.split("\\.");
String[] g=b.split("\\.");
int min=k.length>g.length?g.length:k.length;
for(int i=0;i<min;i++) {
int kn=Integer.parseInt(k[i]);
int gn=Integer.parseInt(g[i]);
if(kn!=gn) {
return kn-gn;
}
}
if(k.length==g.length) {
return 0;
}else if(k.length<g.length) {
return -Integer.parseInt(g[min]);
}else{
return Integer.parseInt(k[min]);
}
}