美团java开发一面

一、美团一面情况

面试平台:牛客网
面试时间: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查询次数。

9、谈谈hash索引与B+树的区别
10、聚簇索引与非聚簇索引的区别
11、索引覆盖
12、索引失效的情况
13、出现慢查询应该怎么解决?

你可能感兴趣的:(美团java开发一面)