2022年就要毕业了,但是一不小心错过秋招了。本来理论知识就不行还没项目,所以现状就是大公司别提了,小公司更过不去。现在就是记录一下自己遇到的一些面试题吧,当然这些很多我也不会就是看别人的回答整理的。可能整理的比较乱,因为记不太清楚,见谅。

最简单也是最常见的问题equals和==的区别
首先,equals 是方法,而 = = 是操作符
其次,= = 对于基本类型来说是值比较,对于引用类型来说是比较的是引用,equals 默认情况下是引用比较。
int和integer的区别
Integer是int的包装类,int则是java的一种基本数据类型
Integer变量必须实例化后才能使用,而int变量不需要
Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
Integer的默认值是null,int的默认值是0
原创发布php中文网
java常用的集合,它们之间的区别
list、set、map
list和set有相同的父类,所以大致相同。list可以重复,set不可以重复。
map采用键值对的方式存储,键不可以重复,值可以重复。
list和set运用广泛,map用处小点。
Arraylist和Linklist的区别
ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构
增删操作时,Linklist更好只需要对指针进行修改即可,Arraylist要移动数据来填补被删除的对象的空间
随机访问get和set,ArrayList更好可以随机定位,LinkedList要移动指针一步一步的移动到节点处
java的所有类的父类是什么
Object类
Object的方法
clone():另存一个当前存在的对象
hashCode():获取对象的哈希值
toString():返回一个String对象,用来标识自己
getClass():返回一个Class对象
wait():让当前线程失去操作权限,当前线程进入等待序列
notify():随机通知一个持有对象的锁的线程获取操作权限
notifyAll():通知所有持有对象的锁的线程获取操作权限
final 在 java 中的作用
final 修饰的类叫最终类,该类不能被继承
final 修饰的方法不能被重写
final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改
数据库事务的四大特性
原子性、一致性、持久性、隔离性
数据库事务隔离性的隔离级别
读未提交、读已提交、可重复读、串行化
我个人感觉就是每提升一级就解决前面的问题。
数据库事务的特性参考地址
索引的优缺点
优点
加快数据的检索速度
唯一性索引保证数据库表中每一行数据的唯一性
加速表和表之间的连接
可以显著减少查询中分组和排序的时间
缺点
索引需要占物理空间
更新数据速度慢,降低了数据的维护速度
常见的索引
普通索引:最基本的索引
全文索引:解决针对文本的模糊查询效率较低的问题
唯一索引: 列值唯一,可以有null
主键索引:列值唯一,不可以有null,表中只有一个
组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
索引最左前缀问题
如果对三个字段建立联合索引,如果第二个字段没有使用索引,第三个字段也使用不到索引了
索引的参考地址
线程的创建方式
继承Thread类
实现Runnable接口
使用Callable和Future
使用线程池
线程和进程的区别
进程是操作系统资源调度的基本单位,线程是任务的调度执行的基本单位
线程共享本进程的地址空间,而进程之间是独立的地址空间
何时使用多进程,何时使用多线程)
对资源的管理和保护要求高,不限制开销和效率时,使用多进程。(钱多要求高用多进程)
要求效率高,频繁切换时,资源的保护管理要求不是很高时,使用多线程。
JVM生命周期
创建阶段(Creation)、应用阶段(Using)、不可视阶段(Invisible)、不可到达阶段(Unreachable)、可收集阶段(Collected)、终结阶段(Finalized)与释放阶段(Free)
spring bean生命周期
实例化、属性填充、初始化和销毁
注入bean的方法
在XML中配置:属性注入(通过set方法)、构造函数注入和工厂方法注入
注解注入:@Autowired、@Resource、@Required
ssm框架
ssm框架原理是:将Spring、SpringMVC、MyBatis整合在一起
SpringMVC的生命周期
发起请求到前端控制器(DispatcherServlet)
前端控制器请求HandlerMapping(处理器映射器)查找 Handler可以根据xml配置、注解进行查找
处理器映射器HandlerMapping向前端控制器返回Handler
前端控制器调用处理器适配器去执行Handler
处理器适配器去执行Handler
Handler执行完成给适配器返回ModelAndView
处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括 Model和view
前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
视图解析器向前端控制器返回View
前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域
前端控制器向用户响应结果
springMVC的生命周期
mybatis特点
简单易学、减少sql与程序代码的耦合、提供映射标签,支持对象与数据库的orm字段关系映射、提供对象关系映射标签,支持对象关系组建维护、提供xml标签,支持编写动态sql。
mybatis流程
初始化、 接收调用请求、处理调用请求、返回处理结果将最终的处理结果返回

这些问题比较杂乱也可能不是很难,主要是因为我基础很差,问我基本都不太会,所以也没在面试中坚持太久,把这些整理下其实主要是梳理一下,然后希望下次面试成功吧!
暂时不打算更新了,虽然本来内容就少。就是今天面试官指点了一下,我也终于不打算继续面试碰运气了,打算春招前努力学学吧,那就祝看到的大家面试成功!

更多推荐

Java开发面试中遇到的题