一面
1、自我介绍,讲讲求职意向和擅长的技能。
2、Tomcat的基本架构是什么?
Server、Connection和Container(Engine)、Service、Context、Host、Wrapper、Container、LifeCycle、Executor、Bootstrap和Catalina
3、JVM调优,工作中怎么用,GC算法和回收策略有哪些?
4、Java中线程池是如何实现的?
5、创建线程池的几个核心构造参数是什么?
corePoolSize(核心线程数)、queueCapacity(任务队列容量)、maxPoolSize(最大线程数、keepAliveTime(线程空闲时间)、allowCoreThreadTimeout(允许核心线程超时)、rejectedExecutionHandler(任务拒绝处理器)
6、Volatile和Synchronize的区别?
(1)Volatile轻量级的,只能修饰变量。synchronize重量级的,还可以修饰方法
(2)Volatile只保证数据的可见性,不能用来同步,因为多线程访问Volatile变量不会阻塞
(3)synchronize不仅保证可见性,而且保证原子性,因为自由获得了锁的线程才能到达临界区,从而保证了临界区中的所有语句被执行,多个线程抢夺synchronize锁的时候,会出现阻塞。
7、GC的机制是什么?垃圾回收器的基本原理是还说呢么?是否可以立即回收内存?怎么样主动的通知JVM进行垃圾回收?
8、类加载器双亲委派模型机制?
9、集合的种类和区别,HashMap底层如何实现(JDK1.8有所改动),HashMap和ConcurrentHashMap的区别?
10、Spring IOC如何管理Bean之间的依赖关系,怎么样避免循环依赖?
11、SpringBean创建过程中的设计模式?
二面
1、自我介绍。
2、InnoDB支持的四种事务隔离级别名称是什么? 之间的区别是什么?
3、聊一聊事务的特性
4、什么是MySQL隔离级别?
5、如何理解BTree机制?
6、谈一谈对慢查询的分析?MySQL常用的优化方法有哪些?
7、谈一谈悲观锁和乐观锁以及SQL的实现。
8、简述三次握手和四次握手的过程?
9、B+树索引和Hash索引的区别?
三面
1、自我介绍。
2、MySQL的锁并发?
3、高并发场景下如何防止死锁,保证数据的一致性?
4、集群和负载均衡的算法与实现?
5、简述分库与分表设计?
6、分库分表带来的分布式困境与对应之策有哪些?
7、加锁的机制是什么?
8、Redis和Setnx命令使如何实现分布式锁的?使用Redis怎么进行异步队列?会有什么缺点?
全部评论
(0) 回帖