面经学习(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.介绍一下实习项目中业务的难点?

合并写请求。

相关推荐
Amazing_Cacao13 分钟前
工艺师初级|参数与风味对齐(精品可可,精品巧克力)
笔记·学习
_饭团1 小时前
字符串函数全解析:12 种核心函数的使用与底层模拟实现
c语言·开发语言·学习·考研·面试·蓝桥杯
Larry_Yanan1 小时前
Qt网络开发之基于 QWebEngine 实现简易内嵌浏览器
linux·开发语言·网络·c++·笔记·qt·学习
芯跳加速1 小时前
AI 视频自动化学习日记 · 第三天
人工智能·学习·ai·自动化·音视频
径硕科技JINGdigital1 小时前
B2B工业制造企业GEO供应商排名审视:以专业交付能力为核心的选型指南
大数据·人工智能·科技
小陈phd2 小时前
多模态大模型学习笔记(二十一)—— 基于 Scaling Law方法 的大模型训练算力估算与 GPU 资源配置
笔记·深度学习·学习·自然语言处理·transformer
丝斯20112 小时前
AI学习笔记整理(75)——Python学习4
人工智能·笔记·学习
物联网软硬件开发-轨物科技2 小时前
【轨物洞见】从“人工时代”迈向“视觉语音时代”:轨物科技多模态智能感知与一键顺控专家系统全解析
大数据·人工智能·科技
小帅学编程2 小时前
英语学习笔记
java·笔记·学习
AI成长日志2 小时前
【datawhale】hello agents开源课程学习记录第4章:智能体经典范式构建
学习·开源