Snapdeal 面试经历
第1轮:
1.找到二叉树的顶视图。
2.在 O(n) 时间内对仅包含数字 1、2 和 3 的数组进行排序。
3.Eg 2, 1, 1, 3, 2, 1, 2 输出:1, 1, 1, 2, 2, 2, 3
4. 使用 9 个线程打印 1、1、1、2、2、2、3、3、3,每组 3 个线程。
5. callable和runnable的区别。
6.Spring bean范围。
7.spring的注解有什么不同,@Controller、@Service、@Component的区别。
8.设计注册api并使用spring boot编写代码,应该处理异常。
9. 多线程在 cpu 内核中的硬件内部是如何工作的?
10.什么是锁,什么是同步,什么是线程安全,为什么它在Java中如此重要?
11.什么是equals和hashcode合约。 Java中hashmap是如何实现的?如果equals总是返回true怎么办?
12. hashmap中put方法后hashcode是如何实现的。
13、什么是前端Controller或Dispatcher servlet?
14. 一个对象在其生命周期中存在哪些不同的内存区域?
15.什么是并发hashmap?它是如何工作的 ?它里面的段是什么,实例化的时候是多少。
第 2 轮:
Q.对部分排序的数组进行排序。
问:您将如何创建自己的自定义编译时异常?
问:什么是 Apache Kafka?什么时候使用?
问: Java 8 特性讨论。
Q. 在数组末尾移动零而不扰乱非零元素的顺序。
问:二叉树(DFS-中序、前序、后序)和 BFS 中有哪些不同类型的遍历。
Q. 类中的静态和非静态内存区域有什么区别?为什么我们不能直接从静态上下文访问非静态变量?
第三轮:
我无法通过第三轮。 🙁