正元智慧集团2025Java开发工程师
硕士才给8-9k,有工作年限10-15K....
面试45分钟。
1. 请简述Java集合框架中ArrayList和LinkedList的区别?适用场景?
答案:
- ArrayList:基于动态数组,随机访问快(O(1)),但插入删除慢(需移动元素)。
- LinkedList:基于双向链表,插入删除快(O(1)),但随机访问慢(O(n))。
2. HashMap的底层原理?JDK1.8后如何解决哈希冲突?
答案:
- 数组+链表+红黑树结构,默认负载因子0.75。
- 冲突解决:
- 链表长度>8且数组长度≥64时,转红黑树(否则扩容)。
- 正元智慧的学生信息缓存可能用HashMap,需注意并发问题(推荐ConcurrentHashMap)。
3. 什么是Spring的事务传播机制?REQUIRED和REQUIRES_NEW有什么区别?
答案:
- REQUIRED(默认):当前有事务则加入,没有则新建。
- REQUIRES_NEW:始终新建事务,原事务挂起。
正元应用场景:
- 校园缴费系统:主业务用REQUIRED,日志记录(需独立事务)用REQUIRES_NEW。
4. MySQL索引失效的常见场景?如何优化?
答案:
- 失效场景:
- 对索引列使用函数(如
WHERE YEAR(create_time)=2025
)。 - 左模糊查询(
LIKE '%张'
)。
- 对索引列使用函数(如
5. Redis的缓存穿透、雪崩、击穿是什么?如何解决?
答案:
- 穿透:查询不存在数据(如恶意请求)。 解决:布隆过滤器+缓存空值。
- 雪崩:大量key同时过期。 解决:随机过期时间+集群部署。
- 击穿:热点key过期瞬间高并发。
解决:互斥锁(Redis的
SETNX
)。
6. 什么是ThreadLocal?内存泄漏问题如何避免?
答案:
- 线程局部变量,每个线程独立副本。
- 内存泄漏:
- ThreadLocalMap的key是弱引用,但value是强引用。
解决:正元OA系统中,用完必须调用
remove()
。
- ThreadLocalMap的key是弱引用,但value是强引用。
解决:正元OA系统中,用完必须调用
7. Kafka如何保证消息不丢失?
答案:
- 生产者:
acks=all
(所有副本确认)。 - Broker:
replication.factor≥3
。 - 消费者:手动提交offset(
enable.auto.commit=false
)。
8. JVM内存模型?什么情况下会触发Full GC?
答案:
- 内存区域:堆(新生代/老年代)、方法区、虚拟机栈等。
- Full GC触发条件:
- 老年代空间不足(大对象直接进入老年代)。
- System.gc()建议触发。
9. 什么是分布式事务?正元智慧可能用到哪些方案?
答案:
- 问题:跨服务数据一致性(如校园选课+缴费)。
- 方案:
- Seata(AT模式)。
- 消息队列(最终一致性,如RocketMQ事务消息)。
10. Spring Cloud和Dubbo的区别?正元微服务架构如何选型?
答案:
- Spring Cloud:HTTP+Restful,组件丰富(Eureka/Gateway)。
- Dubbo:RPC+二进制传输,性能更高。
正元选择:
- 内部高性能服务(如人脸识别)用Dubbo。
- 对外HTTP接口用Spring Cloud。
11. 什么是CAS?ABA问题如何解决?
答案:
- CAS:比较并交换(
AtomicInteger
底层实现)。 - ABA问题:版本号机制(如
AtomicStampedReference
)。 正元应用:校园选课系统并发扣减名额。
12. MySQL的MVCC机制是什么?
答案:
- 通过版本链(undo log)和ReadView实现非锁定读。
- 正元场景:教务系统高并发查询成绩时避免锁竞争。
13. 什么是零拷贝?Kafka如何利用它提升性能?
答案:
- 零拷贝:
sendfile()
跳过用户态数据拷贝。 - Kafka应用:磁盘→网卡直接传输,适合正元日志采集场景。
14. 如何设计一个高并发的秒杀系统?
答案:
- 分层削峰:Nginx限流+MQ异步化。
- 缓存预热:Redis提前加载库存。
- 防超卖:Redis+Lua原子扣减。 正元关联:校园热门课程抢选可参考。
15. 正元智慧官网提到“智慧校园3.0”,你认为哪些技术能支撑该目标?
答案:
- 物联网:NB-IoT连接水电表设备。
- 大数据:学生行为分析(如Hadoop+Spark)。
- 微服务:Spring Cloud Alibaba支撑模块化。
反问:候选人的主要看重点,以及薪资待遇,作息,技术栈等。
钱不给到位,作息8:30-5:30
程序员小白条的编程日记:https://xbt.xiaobaitiao.top/ (分享如何拿到腾讯实习 Offer 和多个中大厂的面试机会,大学经历、求职经历、职场工作、创作经历、生活日常、面经、技术分享)定期更新内容,成长打怪系列,分享从大一到大四的完整面经,看完可冲中大厂!dy同名程序员小白条,主要口述面试经历和分享我认为的实用网站,会比面经讲的详细很多,以真实面试录音为主!公粽号:程序员落叶
全部评论
(0) 回帖