美团二面 凉经 --8.30 17:00-18:00
-
自我介绍
-
面试官主要是想在自我介绍的时间里,能够有时间浏览你的简历。所以自我介绍的时间最好控制在1~2分钟之内;
-
问了简历上的一个项目
-
你所理解的多线程安全是什么样的?
-
回答:多线程安全的特点就是让多个并行执行的线程所运行的结果和让这些线程串行运行的结果一样就算是线程安全。
-
如果让你设计线程安全,你会怎么设计?
-
在不加锁的情况下,如何保证线程安全?
-
回答:Thread Local 、栈封闭
-
你是如何理解Thread Local的?
-
CAS的原理了解吗?
-
CAS分为两个操作(比较并交换),两个操作是分开的,CAS那是不是就不能保证是安全的?
-
回答:现在的硬件支持CAS操作的原子性,所以可以保证是安全的
-
数据库这块除了Mysql还用过其他的吗?
-
用过redis吗?
-
没用过。。。。
-
知道哪些设计模式?
-
单例模式的好处是?
-
还知道哪些设计模式?
-
JDK中用到工厂模式的地方,能不能举一下例子?
-
我说不了解,只知道IO那块用到了装饰器模式。
-
项目中有用过哪些设计模式吗?
-
如果让你去使用装饰器模式,你会怎么使用?
-
计算机网络:访问一个URL的过程?
-
直接从DNS解析开始说,但是最后面试官问了我在传输层下层的协议,在访问URL的过程中有什么作用吗?我回答说,下层主要实现了传输的实现,保证能够传送到正确的主机上去。面试官有些不满意,最后结束时,面试官说计算机网络这块不是很熟悉,下层协议作用那块我只是一句话带过。这里可能面试官想让我说说ARP?
-
代码题:
-
给一颗二叉树,给定两个子节点,找到最近公共父节点
-
结束:
-
1. Java:我觉得你熟悉Java,这是你的优势,也是你的劣势。因为你知道的大多是书本上的,但没有自己去深入钻研过,没有实际用过.
-
2. 计算机网络:掌握的不太熟悉
-
3. 数据结构:一开始思路是错误的,虽然最后的思路很接近答案了,但没有实现出来。