从今天开始准备八股了,开始记录每天的进步。大家还是有问题可以在评论区一起探讨
我是直接搜索的别人的面经来准备的八股,不是按顺序来的。
目录
22.Redis持久化策略(AOF会记录过程,RDB只管结果)
1.java的基本数据类型
整数型、浮点型、布尔类型、字符型
byte short int long double float boolean char
2.String是不是基本类型?String对象怎么比较?
3.java是单继承还是多继承
单继承
4.异常分类?常见的异常类
常见的异常类:数组下标越界,数据库访问异常,空指针异常
异常分类:Error,Exception
Error:Error是程序无法处理的错误,表示运行应用程序中较严重问题。
Exception:
5.catch里面的代码一定会执行吗?
不一定,如果try中的代码执行顺利的话就不会去执行catch中的代码
6.sleep()和wait()的区别
7.mybatis #{},${}的区别
在参数为String类型的时候注意,${}在写的时候要加上引号,不然会出现错误
8.@ResponseBody返回什么类型的数据
JSON类型或XML类型的数据
9.遍历list和map有哪些方式?
List:
<1>.使用迭代器接口来进行遍历
<2>.运用foreach来循环遍历
Map:
<1>.首选获取map中全部的key,再根据key的值去查value
<2>.用values方法,获取到map中全部的值,类型是集合类型
<3>.用foreach循环遍历
10.拦截器和过滤器的区别?请求先经过拦截器还是过滤器?
请求先经过过滤器再到拦截器
11.ORM框架用过哪些?还知道有其他的哪些吗
对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。用过mybatis。
12.java中怎么保证多线程的安全?
拓展:synchronized可以给类、方法、代码块加锁。不需要手动上锁,发生异常会自动释放锁,不会发生死锁。
lock只能给代码块枷锁,需要自己加锁和放锁。使用不当会造成死锁。
13.final关键字的作用
限制类,方法,变量的继承、重写、修改。
14.ArrayList和LinkedList的区别
1.底层数据结构不同:ArrayList的底层数据结构是动态数组,LinkedList的底层数据结构是双向链表
2.插入删除操作的效率不同:ArrayList在进行插入删除操作的时候比较麻烦,还要移动其他的变量
LinkedList在进行插入删除的操作时候就比较方便,直接移动指针的位置就可以
3.随机访问的速度不同:ArrayList可以直接通过下标访问数组,LinkedList指针要从头遍历,效率较慢
4.空间占用不同:由于ArrayList底层使用的是数组,因此如果集合大小不断扩大,可能会浪费一些空间;而LinkedList由于底层是链表,因此不会浪费空间。
15.SpringBoot读取yml配置文数据的方法
嘿嘿,在瑞吉外卖闯关(4)中拓展到啦
16.HashMap线程安全吗
不安全,HashMap底层是一个数组,数组的每一项是一个链表,自身并不自带同步方法,在多线程情况下会产生线程不安全情况。
17.双亲委派机制
18.事务隔离级别有哪些?
19.事务四大特性
ACID,原子性,一致性,隔离性,持久性
20.类加载的阶段有哪些
加载、验证、准备、解析、初始化
21.@AutoWired和@Resource的区别
@AutoWired默认按类型注入
@Resource默认按名称注入
22.Redis持久化策略(AOF会记录过程,RDB只管结果)
1.RDB
按照一定的时间将内存的数据以快照的形式保存到硬盘中
2.AOF
Redis默认情况下是不开启的。开启AOF持久化后Redis 将所有对数据库进行过写入的命令(及其参数)(RESP)记录到 AOF 文件, 以此达到记录数据库状态的目的,这样当Redis重启后只要按顺序回放这些命令就会恢复到原始状态了。
3.AOF文件过大怎么办
为了解决 AOF 文件体积膨胀的问题,Redis 提供了文件重写(rewrite)功能。通过该功能,Redis 服务器可以创建一个新的 AOF 文件来代替旧的 AOF 文件,重写后的新 AOF 文件包含了恢复当前数据集所需的最小命令集合。
23.ArrayList默认大小
10