一、美团一面情况
面试平台:牛客网
面试时间:4.22,14:30---15:30
考察题目:算法题+java基础+数据库
二、算法题
1、使用多线程实现打印奇数和偶数交替进行
public class ThreadTest {
public static void main(String[] args) {
Num num=new Num();//实例化Num对象
Thread thread=new Thread(new Runnable() {//创建线程
public void run() {
while (num.i<101){//循环
synchronized (num){//线程同步的锁
if(num.i%2==0)//条件
{
try {
num.wait();//等待
} catch (InterruptedException e) {
e.printStackTrace();
}
}else
{
int x=num.i++; //数字递加
System.out.println(Thread.currentThread().getName()+x);//输出当前线程名字和值
num.notify();//唤醒线程
}
}
}
}
});
Thread thread1=new Thread(new Runnable() {
@Override
public void run() {
while (num.i<101)
{
synchronized (num){
if(num.i%2!=0){
try {
num.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}else
{
int x=num.i++;
System.out.println(Thread.currentThread().getName()+x);
num.notify();
}
}
}
}
});
thread.setName("奇数");//命名
thread1.setName("偶数");
thread.start();//线程启动
thread1.start();
}
}
class Num{
int i=0;
}
2、用两个栈实现一个队列
二、Java基础
1、谈谈线程池中任务核心调度流程?
&
2、并发编程
3、锁机制
4、GC
5、mysql乐观锁、悲观锁
6、redis缓存原理
7、JVM内存模型
8、谈谈B+数与B树的区别
B树的非叶子节点会存放数据,B+树数据全存在叶子节点,数据在磁盘是按页存储的,每页的大小都是固定的,在树中每走一层相当于走了一次IO,当页面内容过多时候,层数会低,B+树会矮胖,因为B+树非叶子节点只存放地址,不存放数据,这样就降低了IO查询次数。