面试题分享11月1日
1、过滤器和拦截器的区别
过滤器是基于spring的
拦截器是基于Java Web的
2、session 和 cookie 的区别、关系
|
| cookie | session |
| 存储位置 | 保存在浏览器 (客户端) | 保存在服务器 |
| 存储数据大小 | 限制大小,存储数据约为4KB | 不限制大小,因为它是对象 |
| 生命周期 | 可以主动设置生命周期 ,过期会自动删除 | 可以设置,生命周期有限制(有间隔,一般为30min) |
| 数据类型 | 字符串类型 | object |
| 安全性 | cookie不安全 (存储在浏览器的) | 安全 |
session 依赖于 cookie
一、3、HTTP状态码
| 200 | 成功 |
| 301 | 请求资源被转发,移动 |
| 404 | url错误,找不到 |
| 500 | 服务器内部出错 |
4、对Spring IOC的理解
它是 bean 对象的容器,管理 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系
5、Bean的作用域
singleton:单例模式
prototype:原型模式 【深拷贝】
request
session
global-session
6、Bean的生命周期
从定义开始,到实例化-->属性注入-->初始化-->最终在使用完毕后被销毁
7、重定向和转发
- 重定向 2 次请求,请求转发 1 次请求
- 重定向地址栏会变,请求转发地址栏不变
- 重定向是浏览器跳转,请求转发是服务器跳转
- 重定向可以跳转到任意网址,请求转发只能跳转当前项目
- 定向会丢失请求参数, 请求转发不会丢失请求数据
8、spring Boot 自动装配原理
启动注解:@SpringBootApplication 是复合注解
包含 @SpringBootConfiguration(是spring配置类)【包含@Bean注解的方式定义 Bean 方法 】
@EnableAutoConfiguration(启用自动配置类 使用了 SPI 技术)【会根据应用程序的依赖和配置信息,自动配置适当的Bean和组件】
调用了 AutoConfigurationImportSelector 这个注解下的selectImports方法,这个方法中有springFactoriesLoader,使用了 SPI 技术扫描META-INF下面的spring.factory文件
@ComponentScan(组件扫描)【以查找和加载Spring组件。默认情况下,它会扫描注解所在类的包及其子包下的所有组件,并将它们注册到Spring容器中】三个核心注解
9、过滤器和拦截器的区别
- 过滤器(filter)是基于 Java Web 的
- 拦截器(interceptore)是基于 spring 的提供的
10、 什么是拆箱和装箱
拆箱:将包装类型转换为基本类型
装箱:将基本类型封装成引用类型,封装成对象,可以使用对象的方法
11、装箱和拆箱的区别
拆箱:将包装类型转换为基本类型
装箱:将基本类型封装成引用类型,封装成对象,可以使用对象的方法
12、Autowired 和 Resource 的区别:
| Autowired | Resource | |
| 装配策略不同 | 根据类型进行装配 | 先根据名称,找不到再根据类型装配 |
| 属于 spring 注解 | jdk 自带的注解 |
AutoWired: 默认按类型进行装配,默认情况下必须要求依赖对象必须存在
Resource:默认按照名称装配,名称可以通过 name 属性进行指定
@Autowired 与@Qualifier 配合使用
13、Spring MVC 执行流程
Spring Mvc的两个适配器
处理器适配器:(HandlerAdapter) (HttpRequestHandlerAdapter)
设计模式:责任链和适配器

详细
- 用户向前端控制器 (DispatcherServlet) 发送请求
- 前端控制器 (DispatcherServlet) 接收到请求后调用处理映射器 (HandlerMappin g)
- 处理器映射器 (HandlerMapper) 找到具体的处理器,生成处理器对象以及处理器拦截器,再一起返回给前端控制器
- 然后前端控制器调用处理器适配器
- 处理器适配器调用具体的处理器
- 处理器适配器 (HandlerAdapter)将处理器执行结果ModelAndView返回给前端控制器 (Controller)
- 然后前端控制器将ModelAndView传给视图解析器解析View
- 前端控制器将视图解析器返回的View进行渲染,然后响应给用户
14、Spring MVC 设计模式
适配器模式:允许多个对象按照特定的顺序处理请求,在 spring mvc 中调用处理器映射器返回一条执行链,包含(拦截器和处理器)的执行顺序,再由处理器适配器调用执行,是一个责任链设计模式
责任链模式:目的是解决接口和实现类不匹配问题,如果一个接口拥有很多方法,但是我们只期望使用某些方法时,如果用类实现这个接口,则必须重写所有抽象方法,这个时间则可以使用适配器来处理
15、Java Web 三大组件
Listener (监听器)
Fliter (过滤器)
servlet (控制器)
16、Spring IOC 注入的方式
构造方法注入
属性注入(有@Autowired 和 @Resource )
set 方法注入
17、 如何写一个编程式事务
- 先注入事务管理器 PlatformTransactionManager
- 定义事物的配置 DefaultTransactionDefinition(传播属性、隔离级别 可设可不设,不设置就是默认的)
- 开启事务
- 最后再判断,如果没有异常就提交事务,如果有异常就回滚事务
//1.注入事务管理器@Autowiredprivate PlatformTransactionManager transactionManager;//2.编程式事务public void createUser(User user) {//3.定义一个事务默认配置DefaultTransactionDefinition def = new DefaultTransactionDefinition();//设置事务传播属性def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);//设置事务传隔离级别def.setIsolationLevel(TransactionDefinition.ISOLATION_DEFAULT);//4.开启事务TransactionStatus transaction = transactionManager.getTransaction(def);try {//保存当前执行操作userDao.save(user);
// int i = 1 / 0;//5.提交事务transactionManager.commit(transaction);} catch (Exception e) {//6.回滚事务transactionManager.rollback(transaction);throw e;}
18、 事务的特性
原子性(Atomicity / əˈtɒmɪsɪti /):即不可分割性,事务要么全部被执行,要么就全部不被执行。
一致性(Consistency / kənˈsɪstənsi /):事务必须使数据库从一个一致性状态变换到另一个一致性状态,即一个事务执行之前和执行之后都必须处于一致性状态
隔离性(Isolation / aɪˈsoʊ.leɪ.ʃən /):即一个事务执行之前和执行之后都必须处于一致性状态。
持久性(Durability / djuːˈræ.bɪ.lɪ.ti /):事务一旦结束,数据就持久到数据库。
redo_log:解决持久性
undo_log:解决一致性和原子性
19、jdk1.8 新特性
1. 接口增强
接口增强(允许接口有方法体)
接口用default和static修饰,
2.函数式接口
函数式接口(只有一个抽象类接口)
使用@FunctionalInterface注解来标记判断其是否只包含一个抽象方法
3.方法引用
方法引用(一种语法糖)
Lambda表达式的简化形式,可以提高代码的可读性和简洁性。语法:类名::方法名
4.Stream Api(重要)
Java Stream 常用操作方式
| 过滤 | 使用filter()方法可以过滤掉集合中不符合条件的元素。 |
| 映射 | 使用map()方法可以对集合-中的每一个元素进行映射处理。 |
| 排序 | 使用sorted()方法可以对集合中的元素进行排序。 |
| 去重 | 使用distinct()方法去掉集合中的重复的元素。 |
| 统计 | 使用count()方法可以对集合中的元素进行统计。 |
| 分组 | 使用groupingBy()方法可以按照某一个属性进行分组。 |
| 遍历 | 使用forEach()方法可以遍历集合中的每一个元素。 |
| 聚合 | 使用reduce()方法可以对集合中的元素进行聚合计算。 |
| 转换 | 使用collect()方法可以将集合中的元素转换为另一个集合。 |
| 平均 | 使用average()方法可以用于计算一组元素的平均值。 |
| 匹配 | 使用anyMatch()、allMatch()、noneMatch()方法可以对集合中的元素进行匹配判断。 |
5.Optional 工具类
Optional类(工具类)
为了避免null值异常,防止报 NullpointException(空指针异常)。
6.新的日期和时间
新的日期、时间的 API
相关文章:
面试题分享11月1日
1、过滤器和拦截器的区别 过滤器是基于spring的 拦截器是基于Java Web的 2、session 和 cookie 的区别、关系 cookie session 存储位置 保存在浏览器 (客户端) 保存在服务器 存储数据大小 限制大小,存储数据约为4KB 不限制大小&…...
【含文档】基于ssm+jsp的学科竞赛系统(含源码+数据库+lw)
1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: apache tomcat 主要技术: Java,Spring,SpringMvc,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定义了四个…...
Docker方式部署ClickHouse
Docker方式部署ClickHouse ClickHouse docker 版本镜像:https://docker.aityp.com/r/docker.io/clickhouse/clickhouse-server ClickHouse 21.8.13.6 docker 版本镜像:https://docker.aityp.com/image/docker.io/clickhouse/clickhouse-server:21.8.13.…...
车载通信架构 --- PNC、UB与信号的关系
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...
智慧农业云平台:大数据赋能现代农业的未来
近年来,随着科技的迅速发展,农业作为传统行业正面临着前所未有的变革。智慧农业,作为现代农业发展的重要方向,借助云计算、大数据、物联网等技术,正在为农业生产、管理和服务提供全新的解决方案。在这个背景下…...
【python】OpenCV—Tracking(10.4)—Centroid
文章目录 1、任务描述2、人脸检测模型3、完整代码4、结果展示5、涉及到的库函数6、参考 1、任务描述 基于质心实现多目标(以人脸为例)跟踪 人脸检测采用深度学习的方法 核心步骤: 步骤#1:接受边界框坐标并计算质心 步骤#2&…...
为什么TCP(TIME_WAIT)2倍MSL
为什么TCP(TIME_WAIT)2倍MSL 一、TCP关闭连接的四次挥手流程进入TIME_WAIT 二、TIME_WAIT状态的意义1. 确保ACK报文到达对方2. 防止旧报文干扰新连接 三、为什么是2倍MSL四、TIME_WAIT的图解五、TIME_WAIT在实际应用中的影响总结 在TCP连接的关闭过程中&…...
jieba-fenci 05 结巴分词之简单聊一聊
拓展阅读 DFA 算法详解 为了便于大家学习,项目开源地址如下,欢迎 forkstar 鼓励一下老马~ 敏感词 sensitive-word 分词 segment 分词系列专题 jieba-fenci 01 结巴分词原理讲解 segment jieba-fenci 02 结巴分词原理讲解之数据归一化 segment jieba…...
Hadoop期末复习(完整版)
前言(全部为语雀导出,个人所写,仅用于学习!!!!) 复习之前我们要有目的性,明确考什么,不考什么。 对于hadoop来说,首先理论方面是跑不掉的&#x…...
Python篮球王子
系列文章 序号直达链接爱心系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…...
分享一些在部署k8s集群时遇到的问题
目录 一、k8s拉取镜像失败,多半是docker镜像源失效了,需要经常更新 1.编辑该配置文件: 2.重启服务器: 二、kubectl get nodes时出现:The connection to the server localhost:8080 was refused - did you specify t…...
【Canal 中间件】Canal使用原理与基本组件概述
文章目录 一、canal 概述1.2 什么是 canal2.3 canal 的所有组件 二、canal 工作原理2.1 MySQL 主备复制原理2.2 canal 工作原理 三、canal.server 组件3.1 canal.server 的架构3.2 instance 模块组成部分 四、canal.client 组件4.1 类设计4.2 server/clinet 交互协议4.3 使用案…...
《Baichuan-Omni》论文精读:第1个7B全模态模型 | 能够同时处理文本、图像、视频和音频输入
技术报告Baichuan-Omni Technical ReportGitHub仓库地址 文章目录 论文摘要1. 引言简介2. 训练2.1. 高质量的多模态数据2.2. 多模态对齐预训练2.2.1. 图像-语言分支2.2.2. 视频语音分支2.2.3. 音频语言分支2.2.4. 图像-视频-音频全方位对齐 2.3. 多模态微调监督 3. 实验3.1. 语…...
YOLOv6-4.0部分代码阅读笔记-common.py
common.py yolov6\layers\common.py 目录 common.py 1.所需的库和模块 2.class SiLU(nn.Module): 3.class ConvModule(nn.Module): 4.class ConvBNReLU(nn.Module): 5.class ConvBNSiLU(nn.Module): 6.class ConvBN(nn.Module): 7.class ConvBNHS(nn.Module): …...
移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (4) - 平台适配
在移植 AWTK 到 HarmonyOS NEXT 系统之前,我们需要先完成平台适配,比如文件、多线程(线程和同步)、时间、动态库和资源管理。 1. 文件 HarmonyOS NEXT 支持标准的 POSIX 文件操作接口,我们可以直接使用下面的代码&am…...
Java 多线程(八)—— 锁策略,synchronized 的优化,JVM 与编译器的锁优化,ReentrantLock,CAS
前言 本文为 Java 面试小八股,一句话,理解性记忆,不能理解就死背吧。 锁策略 悲观锁与乐观锁 悲观锁和乐观锁是锁的特性,并不是特指某个具体的锁。 我们知道在多线程中,锁是会被竞争的,悲观锁就是指锁…...
【项目分享】法拉利中控台模拟 html+css+js
引入: 制作一个模拟法拉利中控台的网页是一个有趣且富有挑战性的项目。为了简化这个任务,我们可以使用一些HTML、CSS和JavaScript来实现一个基本的界面。以下是一个简单的示例,展示了如何创建一个基本的法拉利中控台模拟网页。 效果展示&…...
Rust 力扣 - 2461. 长度为 K 子数组中的最大和
文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们遍历长度为k的窗口,用一个哈希表记录窗口内的所有元素(用来对窗口内元素去重),我们取哈希表中元素数量等于k的窗口总和的最大值 题解代码 use std::collecti…...
stm32103c8t6 pwm驱动舵机(SG90)
本方法采用通用定时器(TIM2、TIM3、TIM4、TIM5)实现 代码: PWM.h #ifndef __PWM_H // 防止头文件重复包含 #define __PWM_H#include "stm32f10x.h" // 包含STM32F10x系列的设备头文件// 函数声明 void TIM2_PWM_In…...
Python For循环
Python 的 for 循环是自动化重复任务的强大工具,可以使代码更高效、更易于管理。本教程将解释 for 循环的工作原理,探讨不同的应用场景,并提供大量实用示例。无论你是初学者还是希望提升技能的开发者,这些示例都将帮助你更好地在 …...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
