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

合并写请求。

相关推荐
zzcufo2 小时前
多邻国学习笔记第五阶段第10-11部分
笔记·学习·c#
航Hang*2 小时前
计算机等级考试(二级WPS)---第1章:综合应用基础---第2节:PDF文件应用
笔记·学习·pdf·wps·计算机二级·计算机等级考试
zhangrelay2 小时前
Linux(ubuntu)如何锁定cpu频率工作在最低能耗模式下
linux·笔记·学习
老神在在0012 小时前
Token身份验证完整流程
java·前端·后端·学习·java-ee
ValidationExpression3 小时前
学习:词嵌入(Word Embedding / Text Embedding)技术
python·学习·ai
Aliex_git3 小时前
Claude Code 使用笔记(一)- 配置和基础
人工智能·笔记·学习·ai编程
changyunkeji3 小时前
电缆输送机使用年限
经验分享·科技
电饭叔3 小时前
定义中的【谓词】是什么
学习
im_AMBER4 小时前
Leetcode 105 K 个一组翻转链表
数据结构·学习·算法·leetcode·链表
YMLT花岗岩4 小时前
Python学习之-函数-入门训练-具有多个返回值的函数
python·学习