互联网大厂Java面试实录:严肃面试官与水货程序员谢飞机的对决

互联网大厂Java面试实录:严肃面试官与水货程序员谢飞机的对决

第一轮:Java基础与集合

面试官:谢飞机,先简单介绍一下ArrayList和LinkedList的区别吧。

谢飞机:啊?ArrayList是数组,LinkedList是链表,一个快一个慢,对吧?

面试官(点头):不错,ArrayList基于动态数组,查询快但增删慢;LinkedList基于双向链表,增删快但查询慢。

面试官:HashMap的底层原理是什么?

谢飞机:嗯……就是键值对,用哈希表存的?

面试官(微笑):对,但更详细一点,HashMap在JDK8后是数组+链表+红黑树的结构,哈希冲突时用链表,链表过长转红黑树。

面试官:线程安全的集合有哪些?

谢飞机:Vector和HashTable!

面试官(满意):没错,还有ConcurrentHashMap、CopyOnWriteArrayList等。

第二轮:JUC与多线程

面试官:说说线程池的核心参数有哪些?

谢飞机:核心线程数、最大线程数、队列……还有啥来着?

面试官(补充):还有存活时间和拒绝策略。

面试官:synchronized和ReentrantLock的区别?

谢飞机:一个关键字,一个类?

面试官(笑):对,但ReentrantLock更灵活,支持公平锁、可中断、多条件变量。

面试官:什么是AQS?

谢飞机:啊?AQS是……队列同步器?

面试官(摇头):AQS是AbstractQueuedSynchronizer,是JUC的核心框架。

第三轮:框架与中间件

面试官:Spring的IoC和AOP是什么?

谢飞机:IoC是控制反转,AOP是面向切面编程!

面试官(赞许):对,IoC解耦对象依赖,AOP解耦横切逻辑。

面试官:Redis的持久化机制有哪些?

谢飞机:RDB和AOF?

面试官(点头):RDB是快照,AOF是日志追加。

面试官:MySQL的索引失效场景?

谢飞机:用了函数、or条件、like模糊查询?

面试官(满意):还有is null、!=等。

面试结束

面试官:好的,谢飞机,今天的面试就到这里,回去等通知吧。

谢飞机:好的,谢谢!(心想:终于结束了……)

问题答案详解

  1. ArrayList vs LinkedList

    • ArrayList基于动态数组,支持随机访问,增删慢(需移动元素)。
    • LinkedList基于双向链表,增删快(只需改指针),查询慢(需遍历)。
  2. HashMap原理

    • JDK8后结构为数组+链表+红黑树,哈希冲突时链表长度超过8转红黑树。
    • 扩容时容量翻倍,重新哈希分布。
  3. 线程安全集合

    • Vector、HashTable(全表锁);
    • ConcurrentHashMap(分段锁/CAS);
    • CopyOnWriteArrayList(写时复制)。
  4. 线程池参数

    • corePoolSize:核心线程数;
    • maximumPoolSize:最大线程数;
    • keepAliveTime:非核心线程空闲存活时间;
    • workQueue:任务队列;
    • RejectedExecutionHandler:拒绝策略(如AbortPolicy)。
  5. synchronized vs ReentrantLock

    • synchronized是关键字,自动释放锁;
    • ReentrantLock是类,需手动释放,支持公平锁、可中断、多条件变量。
  6. AQS

    • AbstractQueuedSynchronizer,JUC核心框架;
    • 通过CLH队列和state变量实现锁和同步器(如ReentrantLock、CountDownLatch)。
  7. Spring IoC/AOP

    • IoC:控制反转,由容器管理对象依赖(如@Autowired);
    • AOP:面向切面编程,解耦横切逻辑(如@Transactional)。
  8. Redis持久化

    • RDB:定时快照,恢复快但可能丢数据;
    • AOF:日志追加,数据更安全但文件大。
  9. MySQL索引失效

    • 使用函数(如SUBSTRING);
    • or条件(除非所有列都有索引);
    • like模糊查询(如'%abc');
    • is null、!=等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值