7.9
猫眼 Java后端暑期实习 来源:牛客网
1.讲一下进程调度算法
先来先服务,短作业优先,时间⽚轮换,多级反馈队列,优先级调度
2.进程和线程的区别,讲的深一些
JVM的角度: ⼀个进程中可以有多个线程,多个线程共享进程的堆和⽅法区 (JDK1.8 之后的 元空间)资源,但是每个线程有⾃⼰的程序计数器、虚拟机栈 和 本地⽅法栈。
线程是进程划分成的更⼩的运⾏单位,⼀个进程在其执⾏的过程中可以产⽣多个线程。线 程和进程最⼤的不同在于基本上各进程是独⽴的,⽽各线程则不⼀定,因为同⼀进程中的线程极 有可能会相互影响。线程执⾏开销⼩,但不利于资源的管理和保护;⽽进程正相反。
3.聊一下es,es的缺点(准时性之类的),实用场景
4.聊一下Cannal原理,订阅binlog,类似主从复制 5.HashMap,Collections.synchronizedMap(Map) ,HashTable的区别,比HashTable锁粒度细,那它锁的啥,其实也就是源码的mutex 6.你自己如何去实现一个线程安全的map,其实考察的是concurrenthashmap的扩容保护机制 7.Synchronized背后的原理,JDK6对Synchronized的升级的点,为什么Synchronized重,也就是为什么线程的唤醒和阻塞代价大 8.一个网址解析流程,详细些,网络分层模型入手 9.JVM常见问题,回收算法,OMS和G1,引用计数器缺点等 9.算法,记不太清了,一共3个力扣mid程度题目其中一个是攻守领地问题比较有意思