当前位置: 首页 > news >正文

面试题.04

1. hashmap插入键是类的时候有什么问题?

如果未重写hashcode方法和equals方法,会导致两个完全相同的对象在hashmap中会被视为不同的key,因为hashcode方法和equals方法在Object类中的默认实现是通过地址的形式生成/比较的,所有会导致任何两个对象都会被视为两个不同的对象。

2. maven的依赖优先级原则

“最近优先”原则,在依赖树中,如果多个版本的同一依赖存在,Maven 会使用离当前项目最近的版本。

例如现在有个项目A , 项目A依赖项目B和jar包x,同时项目B也依赖jar包x,此时项目A可以选择的x有两条路径:

A -- B -- x

A -- x

显然下面的路径更短,所以会使用下面的x

3. 如果HashMap桶中只有一个元素,会走equals判断吗

会,假设使用了put方法,找到对应哈希桶时发现只有一个元素,但这个元素与put的key可能只是hashcode相同但并不是同一个对象,所以需要使用equals方法判断是否是同一个对象 

4. 数据库的四个特性

  • 原子性 (Atomicity):事务中的操作要么全部成功,要么全部失败。即使在系统崩溃的情况下,事务也不会只完成部分操作。
  • 一致性 (Consistency):事务的执行必须使数据库从一个一致的状态变为另一个一致的状态。数据在事务执行前后的完整性约束必须得到维护。
  • 隔离性 (Isolation):事务的执行应当独立于其他事务。一个事务的执行不应受其他事务的干扰,直到该事务完成并提交。常见的隔离级别包括读未提交、读已提交、可重复读和串行化。
  • 持久性 (Durability):一旦事务被提交,其对数据库的修改将永久保存,即使系统崩溃也不会丢失。

5. Springboot的启动流程

  1. 加载启动类:当springboot项目启动时会在当前工作目录下寻找@SpringBootApplication注解标识的类,并把这个类作为应用程序的入口点。如果找不到这样的主类,则会打印错误信息并退出。
  2. 加载配置文件:springboot会自动扫描resource目录,并加载其中的application.properties或application.yml等配置文件。这些配置文件中包含了应用程序的各种参数,例如数据库连接信息、日志级别等等。
  3. 初始化上下文:创建SpringApplication对象,并调用SpringApplication的run方法初始化ApplicationContext对象。这个过程会读取配置文件中的参数,并将它们转换成Environment对象中的属性。同时还会扫描当前项目中所有的Bean并注册到ApplicationContext中
  4. 启动Web服务器:根据配置文件中的信息自动创建Tomcat等Web容器,并将Spring容器注册到Web容器中,使得SpringBoot应用程序可以直接以Web应用程序的形式运行。
  5. 启动应用程序:根据创建好的Spring容器以及Web服务器,启动响应线程进行服务处理
  6. 监听应用程序的状态:SpringBoot会监听应用程序的状态,并根据需要进行相应的操作。例如,当应用程序退出时,它会打印出详细的日志信息,并将应用程序的上下文环境恢复到初始状态。

6. 介绍Java内存模型JMM

jmm是一种抽象的概念,用于定义多线程程序如何与内存进行交互

  • 主内存:所有变量都存储在主内存中,主内存是共享的。
  • 工作内存:每个线程都有自己的工作内存,工作内存中保存了主内存中变量的副本。线程对变量的所有操作(读取、写入)都在工作内存中进行,最后再将结果同步回主内存。

工作内存指的是CPU的寄存器和缓存,比起内存来说,访问速度是快得多的,引入工作内存可以减少内存访问延迟,提高程序的执行效率。但同时也引入了内存可见性问题

相关文章:

  • 【Python】数据可视化之分类图
  • 【Datawhale X 李宏毅苹果书 AI夏令营】《深度学习详解》Task3 打卡
  • EvoSuite使用总结
  • 是谁还不会flink的checkpoint呀~
  • Java传输本地目录到远程服务器
  • WSL 在 Windows 上删除已经安装的 Ubuntu | WSL 再次重装 Ubuntu | cv2.imshow() 弹窗支持
  • Java语言的Netty框架+云快充协议1.5+充电桩系统+新能源汽车充电桩系统源码
  • 基于FreeRTOS的STM32多功能手表
  • Java Spring Boot 项目中的密码加密与验证开发案例手册
  • Redis集群
  • C++11 ---- 右值引用和移动语义
  • SpringBoot依赖之Spring Boot DevTools热部署开发增效工具
  • 【Spring Boot 3】【Web】解析获取HTTP请求参数
  • 2. 卷积神经网络(CNN):图像识别的核心技术
  • MySQL 数据库管理与操作指南
  • k8s集群本地搭建,使用gitlab、harbor、jenkens、cicd来实现devops自动化构建
  • c++中析构函数是否一定要为虚函数
  • 轴承知识大全,详细介绍(附3D图纸免费下载)
  • APP长文本内容编辑器功能实现方案
  • Linux 一个简单的中断信号实现
  • 独家丨申万宏源研究所将迎来新所长:首席策略分析师王胜升任
  • 关键词看中国经济“一季报”:稳,开局良好看信心
  • 中央政治局会议举行,传递三重确定性
  • 邮轮、无人机、水上运动……上海多区推动文旅商体展融合发展
  • 苏炳添任暨南大学体育学院院长
  • 审议民营经济促进法草案等,十四届全国人大常委会第十五次会议将举行