猿辅导提前批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工程师##校招#