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

合并写请求。

相关推荐
撩得Android一次心动5 小时前
Jetpack Compose 知识点整理2【个人用】
android·笔记·学习·kotlin·compose
dadaobusi6 小时前
学习:灵犀指令集
学习
xhyu617 小时前
【学习笔记】图像质量评估方法 (5.生成图像是否符合用户要求)
笔记·学习·计算机视觉
卿卿的产品经理日记9 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
keyipatience9 小时前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
Simon_lca9 小时前
ZARA、H&M、SHEIN验厂差异全对比:一套底层记录,三套接口输出
大数据·人工智能·经验分享·科技·制造
南山电子nscn10 小时前
爱普生TCXO晶振TG-5006CJ-20H与TG2016SMN在ASR翱捷科技5G RedCap芯片中的应用
科技·5g·tcxo·温补晶振
lazy H10 小时前
【计算机网络】第 2 篇:一条数据如何穿过网络?彻底理解数据封装与解封装
网络·经验分享·后端·学习·计算机网络
我命由我1234510 小时前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
kkkkkkkkkk_Z11 小时前
新手自学嵌入式 | 学习日记:I2C总线协议、时序分析、读写流程与代码实现
学习