java 事务面试题 java常见事务面试题
2023-05-17 11:32:54
1.Redis常见的存储数据类型
list(列表类型) set(集合类型) zset(有序集合类型) string(字符串类型) hash(散装类型)
2.log4j级别
debug:最低级别的日志,一般会输出一些操作、代码、异常、错误等。
info:info输出的日志最终可以为用户看到,用户可以理解。
error:输出错误,错误问题大于异常,但错误与异常不同。
warn:记录系统的警告,输出日志。
fatal:fatal输出是一些严重的错误。
3.事务的传播行为和隔离等级
传播行为:一般来说,当我们做项目时,我们会在service层设置事务。当我们调用service的方法时,我们会更新数据库。事务的传播行为可以保证事务的一致性和原子性,要么成功,要么失败。
在spring的配置文件中设置事务如下:propagation_required。
propagation_required:若当前事务存在,则加入当前事务,若不存在,则创建事务。(最常用)
propagation_supports:若目前有事务,则加入事务,若不存在,则以非事务的形式执行。
propagation_requires_new:不管目前有没有事务,都会新建一个事务。
propagation_not_supports:以非事务的形式执行,如果目前有事务,则挂起事务。
等等,总共有七个选项。
隔离级别:
读未提交
读已提交
可重复读
可串行化
4.$和#的区别
#比较安全 可防止sql注入 在预编译阶段#{}中的内容将被占位符所取代,只有在进入DBMS(数据库管理)时才会进行分析。
$安全性低 sql注入不可能 ${}在预编译阶段的内容是动态添加的。
5.分布式 框架的锁
6.手写单例(多线程模式下的单例)
7.count(1)与count(*)的区别
分情况讨论:
假如你的表没有主键count(1)比count(*)快,
若有主键列count(1)也比count(*)快,
若表中只有一列那count(*)相对较快,
count(1)列扫描,count(*)是全局扫描。
8.spring boot和spring的区别
9.sorl在哪里用于项目?
10.Redis的使用场景
分布式锁和单线程机制
排行榜
最新列表
位操作
队列
计数器
缓存-热数据
11.Linux的常用命令 杀死进程