引言:
这次参加阿里大数据岗电面被刷了,发现基础知识还不是不够扎实,很多东西都停留于表面,很少真正关注底层实现。所以导致这次败北,希望下面整理多人的阿里电面题对大家能有帮助。
一.操作系统
1.系统栈与用户栈区别
2.进程与线程相关知识,死锁的相关知识
二.网络
1.client与server底层通信全过程(直到网卡)
2.Tcp/IP三次握手与四次挥手,为什么?
3.tcp,udp的区别
三.数据结构
1.数据结构分类与应用场景
2.b树,红黑树,详细平衡二叉树,插入,删除
3.你在项目中用到哪些数据结构?
四.java基础
1.谈谈Object类
2.Java中hashCode()是如何实现的
3.JAVA中常见的数据结构,特点,如何实现的
4.HashMap中解决hash冲突
5.给你一个list如何遍历其中的每一个元素(我答使用的是Iterator迭代器,因为速度快)。为什么使用迭代器?
6.多线程状态,time_wait与wait的区别
7.如果让你设计一个线程池,你会如何实现?java中是如何实现的?
8.在主线程中有线程A,如何让主线程等待A完成。
9.给你一个场景:需求是有一堆任务,如果线程池中线程不够则创建线程,如果线程空闲30s则销毁线程,需要一个线程池,如何去设计这个线程池。
10.给你一个场景:有一个类,类中含有成员变量a,有多个线程多它进行访问,但只有一个线程能够对它进行更改。
(1)这个是线程安全的吗?
(2)针对上面的问题,应该如何操作?
11.volatile和synchronized的区别?
12.synchronized,lock锁机制的原理
13.JVM内存模型
14.垃圾回收算法,垃圾回收流程。
15.哪些对象是作为GC roots的
16.了解阻塞队列吗,如何实现的
17.threadlocal
18.countdownlatch与join
五.数据库
1.数据库的范式
2,数据库如何优化查询的?
六.javaEE
1.你对spring boot,spring mvc了解吗(了解皮毛.javaee不再问)
七.大数据
1.zookeeperleader选举机制(特意重点复习大数据,就问了这!!!!!)