美团](https://www.nowcoder.com/jump/super-jump/word?word=%E7%BE%8E%E5%9B%A2))一面:(50min)
进程和线程的区别
- 拥有资源
进程是资源分配的基本单位,线程不拥有资源,但是线程可以访问路隶属于进程的资源
2.调度
线程是CPU调度的基本单位
3.系统开销
切换线程开销小,切换进程开销大
JVM角度说线程和进程的区别:。。。。
进程间的通信
进程间的通信方式:匿名管道、有名管道、信号、消息队列、信号量、共享内存、套接字
线程间的通信方式:互斥量、信号量、事件(共享变量、消息通知、管道、ThreadLocal)
操作系统的io模型
操作系统的IO模型分为:同步IO、异步IO
同步IO分为阻塞IO、非阻塞IO
异步IO一定是非阻塞IO
https://blog.csdn.net/qq_39213969/article/details/110378743
对同步和异步的理解
同步和异步关注的是消息通知机制
同步指的是在发起一个调用时,在没有得到结果之前,该调用不返回。一旦调用返回了,就得到返回值了。
就是调用者主动等待调用的结果。
异步指的是调用在发出后,这个调用就返回了,所以没有返回结果。
就是当一个调用发出后,调用者不会立即得到结果,而是被调用者完成工作后,被调用者通过状态等通知调用者。
说一下数据库的特性
ACID
原子性、一致性、隔离性、持久性
说一下隔离性怎么实现的
隔离性通过MVCC实现
MVCC是通过版本链和read view实现的
说一下数据库索引用的什么数据结构
B+树
为什么要用b+树 b+树有什么特性吗
B+树搜索效率更稳定
B+树的叶子结点存储数据
你知道数据库里b+树一般是多少层吗
2层
有没有经历过查询很慢的情况
慢查询的优化
问我搜内存里100层的b+树快 还是搜内存里3层的b+加上磁盘里2层的快?(不知道是不是这么问的了 大概是这样
做题:乱序数组里找第k大元素
(我用快排做的 做完了他让我优化
二面(1h)
自我介绍
问项目(问了大概15分钟左右
问做项目的时候遇到了什么问题
为什么tcp是三次握手
spring boot的自动装配了解吗
hashmap底层数据结构是什么 它是线程安全的吗
hashmap扩容的条件是什么 为什么要扩容
equals 和 ==的区别
如果两个引用类型它们的值是一样的 那他们的地址会是一样的吗
hashset是依据什么原理去重的
为什么重写equals还要重写hashcode
hash冲突了怎么办
线程池的核心参数
多线程执行的时候 依靠什么来保证他的一致性
什么是可重入锁
jvm垃圾回收算法](https://www.nowcoder.com/jump/super-jump/word?word=%E7%AE%97%E6%B3%95))
怎么判断一个类可以回收了
做题:
1.写sql语句
一个学生表 里面有学号 分数 和课程 求每个课程的最高分数
2.用两个栈实现队列(](https://www.nowcoder.com/jump/super-jump/word?word=%E7%94%A8%E4%B8%A4%E4%B8%AA%E6%A0%88%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97)()问了时间复杂度)
3.判断回文链表](https://www.nowcoder.com/jump/super-jump/word?word=%E9%93%BE%E8%A1%A8))
你平时是通过什么渠道学习的
你是怎么知道你学习的一个大概流程(就是什么时候该学哪个了的这种意思)
你最近在学什么
最近有没有学习分布式这块的东西
问你想来北京工作吗
你有什么要问我的吗