猿辅导提前批JAVA二面凉经
猿辅导提前批JAVA二面凉经
自我介绍+介绍项目+基础知识+手撕代码
一共40min
- 说说乐观锁、悲观锁、可重入锁、公平锁
- 讲讲你对数据库事务的理解(我讲了ACID和四大隔离机制)
- 加入一个事务中第三个操作失败会怎么办?
- 数据库查询的连接,左连接和右连接。
- 说说DNS服务,DNS服务想解决什么问题?
- 手撕代码:用一个链表实现入队和出队两个操作,用O(1)的时间复杂度。
class Node {
int val;
Node next;
}
class Queue {
Node head = {生成一个固定长度的单链表} // 用来存储数据的单链表,head是头结点。单链表已经存在,不可扩容,只需要把数据存储在里面
void enqueue(int a) // 待实现
int dequeue() // 待实现
}我的解答:
class Queue {
Node head = {生成一个固定长度的单链表} // 用来存储数据的单链表,head是头结点。单链表已经存在,不可扩容,只需要把数据存储在里面
Node cur = head;
Node pre = head;
int flag;
void enqueue(int a) {
cur.val = a;
if(pre == cur && flag == 1){
return;
}
cur = cur.next;
if(cur == null){
cur = head;
}
flag = 1;
}
int dequeue() {
int res = pre.val;
pre = pre.next;
if(pre == cur) {
flag = 0;
}
return res;''
}
}#猿辅导##面经##Java工程师##校招#
