java常见面试题及部分答案

Posted java-263

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java常见面试题及部分答案相关的知识,希望对你有一定的参考价值。

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的常用命令 杀死进程

 

以上是关于java常见面试题及部分答案的主要内容,如果未能解决你的问题,请参考以下文章

2020最新Java常见面试题及答案

java常见面试题及答案(基础题122道,代码题19道)

java常见面试题及答案

您可能不知道Java基础40道常见面试题及详细答案!

面试准备——selenium常见面试题及答案(java)

Java常见面试题及答案汇总