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

面试题分享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、重定向和转发

  1. 重定向 2 次请求,请求转发 1 次请求
  2. 重定向地址栏会变,请求转发地址栏不变
  3. 重定向是浏览器跳转,请求转发是服务器跳转
  4. 重定向可以跳转到任意网址,请求转发只能跳转当前项目
  5. 定向会丢失请求参数, 请求转发不会丢失请求数据

8、spring Boot 自动装配原理

启动注解:@SpringBootApplication 是复合注解

包含 @SpringBootConfiguration(是spring配置类)【包含@Bean注解的方式定义 Bean 方法 】

@EnableAutoConfiguration(启用自动配置类 使用了 SPI 技术)【会根据应用程序的依赖和配置信息,自动配置适当的Bean和组件】

调用了 AutoConfigurationImportSelector 这个注解下的selectImports方法,这个方法中有springFactoriesLoader,使用了 SPI 技术扫描META-INF下面的spring.factory文件 

@ComponentScan(组件扫描)【以查找和加载Spring组件。默认情况下,它会扫描注解所在类的包及其子包下的所有组件,并将它们注册到Spring容器中】三个核心注解

9、过滤器和拦截器的区别

  1. 过滤器(filter)是基于 Java Web 的
  2. 拦截器(interceptore)是基于 spring 的提供的

10、 什么是拆箱和装箱

拆箱:将包装类型转换为基本类型

装箱:将基本类型封装成引用类型,封装成对象,可以使用对象的方法

11、装箱和拆箱的区别

拆箱:将包装类型转换为基本类型

装箱:将基本类型封装成引用类型,封装成对象,可以使用对象的方法

12、Autowired 和 Resource 的区别:

Autowired

Resource

装配策略不同

根据类型进行装配

先根据名称,找不到再根据类型装配

属于 spring 注解

jdk 自带的注解

AutoWired: 默认按类型进行装配,默认情况下必须要求依赖对象必须存在

Resource:默认按照名称装配,名称可以通过 name 属性进行指定

@Autowired 与@Qualifier 配合使用

13、Spring MVC 执行流程

Spring Mvc的两个适配器

处理器适配器:(HandlerAdapter) (HttpRequestHandlerAdapter)

设计模式:责任链和适配器

详细

  1. 用户向前端控制器 (DispatcherServlet) 发送请求
  2. 前端控制器 (DispatcherServlet) 接收到请求后调用处理映射器 (HandlerMappin g)
  3. 处理器映射器 (HandlerMapper) 找到具体的处理器,生成处理器对象以及处理器拦截器,再一起返回给前端控制器
  4. 然后前端控制器调用处理器适配器
  5. 处理器适配器调用具体的处理器
  6. 处理器适配器 (HandlerAdapter)将处理器执行结果ModelAndView返回给前端控制器 (Controller)
  7. 然后前端控制器ModelAndView传给视图解析器解析View
  8. 前端控制器将视图解析器返回的View进行渲染,然后响应给用户

14、Spring MVC 设计模式

适配器模式:允许多个对象按照特定的顺序处理请求,在 spring mvc 中调用处理器映射器返回一条执行链,包含(拦截器和处理器)的执行顺序,再由处理器适配器调用执行,是一个责任链设计模式

责任链模式:目的是解决接口和实现类不匹配问题,如果一个接口拥有很多方法,但是我们只期望使用某些方法时,如果用类实现这个接口,则必须重写所有抽象方法,这个时间则可以使用适配器来处理

15、Java Web 三大组件

Listener (监听器)

Fliter (过滤器)

servlet (控制器)

16、Spring IOC 注入的方式

构造方法注入

属性注入(有@Autowired 和 @Resource )

set 方法注入

17、 如何写一个编程式事务

  1. 先注入事务管理器 PlatformTransactionManager
  2. 定义事物的配置 DefaultTransactionDefinition(传播属性、隔离级别 可设可不设,不设置就是默认的)
  3. 开启事务
  4. 最后再判断,如果没有异常就提交事务,如果有异常就回滚事务
//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与信号的关系

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...

智慧农业云平台:大数据赋能现代农业的未来

近年来,随着科技的迅速发展,农业作为传统行业正面临着前所未有的变革。智慧农业,作为现代农业发展的重要方向,借助云计算、大数据、物联网等技术,正在为农业生产、管理和服务提供全新的解决方案。在这个背景下&#xf…...

【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 循环的工作原理,探讨不同的应用场景,并提供大量实用示例。无论你是初学者还是希望提升技能的开发者,这些示例都将帮助你更好地在 …...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Cursor实现用excel数据填充word模版的方法

cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言: 类加载器 1. …...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...