面经学习(hbkj实习)

个人评价

这次面试算是对我基础知识空缺的排查,有很多小知识点是我没有去复习到的,也是一次比较愉快的面试。

1.在java中有哪些数据属于共享变量?(共享变量怎么创建)

共享变量的形式还是很多的,首先就是今天变量进行一个共享变量。当我们需要将某个变量变成一个共享变量的时候需要使用Voliate进行修饰,使其变成共享变量。

2.多线程进行操作数据时如果不上锁为什么共享变量中的数据会被该的乱七八糟吗?

举例子:两个线程同时去操作一个类中的变量,就比如说对应的变量++,当两个线程进行竞争的时候,二者可能获取的数据都是对方为修改的数据,此时就会出现++缺失的情况。

3.JVM加载class的时候卸载class的条件是什么?

1.当该类的所有实例已经被全部进行GC了,这时候在JVM中不存在class的实例。

2.当该类的.class没有被任何的引用,也就是我们不能通过放射来获取对应的实例。

3.当该类的classLoader被GC了。

4.软引用,弱引用,虚引用在什么时候会使用呢?

软引用(softRefrence):当我们内存不足的时候,如果检查到当前的软引用的时候,就会进行回收。主要的应用场景就是做缓存,当内存不足的时候就会清除一点缓存。

弱引用(weakRefrence):即使在内存充裕的情况下,如果检查到弱引用的时候,就会对其进行回收。主要的应用场景就是解决ThreadLocal内存泄漏问题。

虚引用(phantoms Refrence):不会对对象的生命周期有影响,我们无法从该引用中获取对象实例,主要就是在垃圾回收前的做一些列的操作,就比如系统通知。

4.ThreadLocal中ThreadLocalMap的entry为什么使用弱引用来解决呢?

使用弱引用作为ThreadLocalMap的key在进行垃圾回收的时候呢,虽然会导致key为null出现内存泄漏的问题,但是呢如果key使用强引用,key设置为null也会出现内存泄漏的问题。

相比于强引用,当key为弱引用的时候,当我们进行垃圾回收的时候,ThreadLocal的实例就会进行回收,虽然vlaue在还存在,但是呢,在set和get方法中有回收无效key的操作。

5.什么情况下,强引用会被回收呢?

1.在执行方法的时候,我们会创建一些局部变量,在执行完这个方法后就会将该引用进行回收。

2.使用可达性分析算法无法在GC中找到对应的对象,也就是没有被引用,这时候就会被回收。

6.数据的隔离级别中可重复读有什么缺点?

1.无法解决幻读的问题,当一个事务对某个范围进行查询,另外一个事务对当前范围中的数据进行插入操作,那事务一在做查询的时候,查询的结果就会不一样,最终出现幻读的情况。

2.因为可重复读在多次进行读取的时候使用的都是同一个readView,我们就无法获取刚更新的数据。

7.介绍一下实习项目中业务的难点?

合并写请求。

相关推荐
AOwhisky7 小时前
Python 学习笔记(第一期与第二期)——基础语法——核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发
STLearner7 小时前
ICML 2026 | LLM×Graph论文总结[1]【图基础模型,文本属性图,多模态属性图,图对齐,图提示学习,关系深度学习
论文阅读·人工智能·python·深度学习·学习·机器学习·数据挖掘
什巳9 小时前
JAVA练习278- 和为 K 的子数组
java·学习·算法·leetcode
碎光拾影9 小时前
CPU与MCU核心区别揭秘
单片机·学习·51单片机
我命由我1234511 小时前
复利极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
AOwhisky12 小时前
Python 学习笔记(第三期)——流程控制核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发·流程控制
tyqtyq2212 小时前
药品说明书解读 —— AI 安全用药助手,鸿蒙原生应用深度解析
人工智能·学习·华为·生活·harmonyos
小心亦新13 小时前
STM32学习13 定时器1中断
stm32·嵌入式硬件·学习
我命由我1234513 小时前
72 法则极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
qq_263_tohua14 小时前
第112期 CNN学习,不错的文章
学习