- 1
- 0
- 约3.66千字
- 约 5页
- 2026-07-27 发布于河北
- 举报
Java线程变量核心面试题(含详细接地气答案)
说明:所有题目均为面试高频原题,答案摒弃模板化话术,以开发实操、面试官打分标准编写,适合面试背诵、复盘查漏补缺。
一、基础概念题(入门必问)
1.Java中成员变量、局部变量、静态变量,哪个是线程安全的?为什么?
参考答案:
只有局部变量是天然线程安全的,成员变量和静态变量都是非线程安全的。
核心原理:
1.局部变量(方法内定义):存储在虚拟机栈中,每个线程都有自己独立的栈空间,线程之间互不共享、互不干扰,所以绝对安全,不需要加锁。
2.成员变量(实例变量):存在堆内存中,归对象所有。如果多个线程共用同一个对象,会并发读写同一个变量,出现数据覆盖、脏数据问题,线程不安全。
3.静态变量(static修饰):存在方法区,归类所有,全局所有线程共享,并发场景下极易出现线程安全问题。
实战总结:写代码时,尽量把可变变量定义在方法内;必须用成员变量时,要做并发控制(加锁、ThreadLocal、原子类)。
2.为什么局部变量不存在线程安全问题?
参考答案:
根本原因是栈内存线程私有。
Java虚拟机执行方法时,会为每个线程单独创建一个栈帧,局部变量就保存在当前线程的栈帧里。多个线程同时执行同一个方法,各自操作的是自己栈里的变量,不会互相读写、互相覆盖,所以不存在竞争问题,自然线程安全。
补充:如果局部变量是引用类型,且把对象实例
您可能关注的文档
最近下载
- 20231102-国信证券-港股ROE量化投资策略(三):从个股案例中寻找进攻策略的底层逻辑.pdf VIP
- 机场中转航班最短衔接时间测算办法.doc VIP
- 创先创效劳动竞赛提升企业竞争实力和业绩绩效实践与探索.doc VIP
- ISO9001管理评审记录与实施全套手册_含完整填写示例.docx VIP
- 低空经济专题之三:eVTOL详细拆解.pdf VIP
- 医院关于成立实验室生物安全管理委员会通知.docx
- 合规转利润:降本增效全指南(2026)《GBT 24067-2024温室气体 产品碳足迹 量化要求和指南》.pptx VIP
- 医院信息科面试题及答案.docx VIP
- 树木移植购销合同.doc VIP
- 医院信息科面试题.pdf VIP
原创力文档

文档评论(0)