每天一套面试题Day12-京东高频(1)
1.synchronized和Lock有什么区别?
2.说说你对AQS的理解。
定位:它是一个构建锁和同步器的框架,是JUC的基石。 核心:一个volatile的int状态位(state) 和一个FIFO线程等待队列。 模式:使用了模板方法模式,子类通过重写 tryAcquire, tryRelease 等方法来定义具体的同步规则。 价值:它封装了复杂的线程排队、阻塞与唤醒机制,让构建高性能、线程安全的同步器变得简单。
3.如何创建线程池?线程池常见参数有哪些?
- 1,Executor工具类
- 2,new ThreadPoolExecutor() 常见参数 核心线程数,最大线程数,非核心线程数最大存活时间,线程工厂,拒绝策略,任务队列
4.请你说说HashMap底层原理和扩容机制。
数组+链表 数组+链表/红黑树(JDK8以及之后,在链表长度>=8且数组长度≥64时时会变成红黑树。默认初始容量16,负载因子0.75当元素数目大于负载因子(0.75)×容量的时候,会发生扩容,扩容为原来的两倍,在jdk7之前要重新计算来确定位置,由于要么位置在原位置,要么在原位置+原数组长度,所以用哈希值与上原数组长度,如果为真,那么就在原位置+原数组长度,不然的话就不动。确定好在哈希桶的位置后,再尾插进对应的位置。
5.说说你了解的JVM内存模型
方法区,堆
虚拟机栈,本地方法栈,程序计数器,
6.说说JVM的垃圾回收算法。
标记-复制算法(新生代,无碎片),标记-清除算法(老年代,有碎片)->标记-整理算法(老年代,无碎片)
7.说说你对AOP的理解。
AOP面向切面编程,切面包括:where(切入点),when(通知), 定义了在切入点“何时”执行“什么”。抽取出了共性的方法 Spring AOP是:动态代理(实现了接口) CGLIB生成目标类的子类(没有实现接口)
#面试真题#每日一套面试真题 文章被收录于专栏
记录刷过的面试真题
查看16道真题和解析