一心向上Java实习
《面试题目》
- String、StringBuilder、StringBuffer 区别
- String 为什么是不可变的
接口和抽象类的区别
线程池的工作流程 3. synchronized 锁和 ReentrantLock 的区别 4. threadlocal 的原理 5. 为什么会发生内存泄露 6. 什么是强引用和弱引用 7. MySQL 的隔离级别 8. Java 线程安全的 map 9. 它是怎样保证线程安全的 10. mysql的innodb与MyISAM的区别? 11. 分布式事务有哪些解决方案 12. 说一下本地消息表和事务型消息
AI 工具用哪些
《参考解析》
-
MySQL深度:MySQL InnoDB使用B+树索引,支持ACID事务。关键知识点:聚簇索引(主键索引)叶节点存完整行数据;辅助索引叶节点存主键值(需回表);MVCC通过undo log版本链+ReadView实现多版本并发控制,解决脏读/不可重复读;事务隔离级别从低到高:读未提交→读已提交→可重复读(默认)→串行化。
-
Java并发:Java并发:synchronized关键字(偏向锁→轻量级锁→重量级锁升级);ReentrantLock(可重入、可中断、公平锁);volatile(内存可见性+禁止指令重排,不保证原子性);CAS(Compare-And-Swap,无锁乐观并发);ThreadLocal(线程本地变量,WeakReference,注意内存泄漏)。线程池核心参数:corePoolSize/maximumPoolSize/keepAliveTime/workQueue/handler。