面试题——JDBC|Maven|Spring的IOC思想|DI思想|SpringMVC

目录

一、JDBC

1、jdbc连接数据库的基本步骤(掌握**)

2、Statement和PreparedStatement的区别 (掌握***)

二、Maven

1、maven的作用

2、maven 如何排除依赖

3、maven scope作用域有哪些?

三、Spring的IOC思想

1、Spring的三大核心思想 ioc、di、aop

2、IOC思想的理解,自己的话描述一下。

3、IOC容器创建的两种方式

4、IOC容器创建对象的注解

5、IOC容器底层如何创建对象

6、对象何时创建,何时销毁, 能不能延迟创建,初始化方法和销毁方法

 7、从IOC容器获取对象的三种方式

8、bean的作用域范围

9、相关的注解有哪些?各自作用?

四、Spring的DI思想

1、DI依赖注入有哪些方式?

2、DI依赖注入常用的注解有哪些?

3、IOC创建对象相关的注解有哪些?(对比)

五、SpringMVC

1、get和post的区别?(重点)

2、服务端接收前端请求的方式?(重点)

3、服务端响应数据给前端的方式?(重点)

4、转发和重定向的区别和联系?(扩展)

5、springmvc的内部执行流程图(重点)


一、JDBC

1、jdbc连接数据库的基本步骤(掌握**)

1. 加载驱动类(只需加载一次,新版本JDK可以省略)
2. 获取连接对象 Connection
3. 获取执行语句对象 Statement 或 PreparedStatement ,执行SQL语句
4. 使用 ResultSet 对象接收数据库查询结果(一般只有查询语句需要)
5. 将 ResultSet 中的结果封装成对应的 JavaBean 类型对象
6. 释放资源、关闭连接

2、Statement和PreparedStatement的区别 (掌握***)

  • Statement接口用来执行一段SQL语句并返回结果,不支持参数占位符写法。Statement执行 ,其实是拼接sql语句的。 先拼接sql语句,然后再一起执行如果传入的参数是一段可执行的SQL,也会被执行,有SQL注入的风险。
  • PreparedStatement接口继承自Statement接口,相比较以前的statement, 预先处理给定的sql语句,对其执行语法检查 在sql语句里面使用 ? 占位符来替代后续要传递进来的变量。 后面进来的变量值,只会被看成参数值,不会产生任何的关键字的效果。
  • Statement支持表名、列名动态传入,如果表名、列名不固定,不能使PreparedStatement。

二、Maven

1、maven的作用

Maven 是一个强大的项目管理和构建工具,主要用于 Java 项目,但也可用于其他语言(如 Kotlin、Scala)。它的核心作用包括:

  • 依赖管理:自动下载和管理项目所需的库(JAR 文件),解决依赖冲突。
  • 标准化项目结构:约定优于配置,统一目录布局(如 src/main/java、src/test/resources)。
  • 构建生命周期:提供编译、测试、打包、部署等标准化流程(通过 mvn clean install 等命令)。
  • 插件体系:支持扩展功能(如编译、代码检查、生成文档等)。
  • 多模块管理:简化复杂项目的模块化开发。

2、maven 如何排除依赖

在 Maven 中,可以通过 <exclusions> 标签排除传递性依赖(即某个依赖引入的间接依赖)。

方法 1:在依赖中直接排除

<dependency>  <groupId>com.example</groupId>  <artifactId>A</artifactId>  <version>1.0</version>  <exclusions>  <exclusion>  <groupId>com.unwanted</groupId>  <artifactId>B</artifactId>  </exclusion>  </exclusions>  
</dependency>  

方法 2:通过 dependencyManagement 全局排除(适用于多模块项目)

<dependencyManagement>  <dependencies>  <dependency>  <groupId>com.example</groupId>  <artifactId>A</artifactId>  <version>1.0</version>  <exclusions>  <exclusion>  <groupId>com.unwanted</groupId>  <artifactId>B</artifactId>  </exclusion>  </exclusions>  </dependency>  </dependencies>  
</dependencyManagement>  

3、maven scope作用域有哪些?

Scope(作用域)说明是否传递依赖是否打入最终包典型使用场景
compile默认值。参与编译、测试、运行,并会传递依赖。✅ 是✅ 是项目核心依赖(如 Spring、MyBatis)
provided由 JDK 或容器(如 Tomcat)在运行时提供,不传递依赖。❌ 否❌ 否Servlet API、JDK 工具包(如 javax.servlet
runtime仅参与运行和测试阶段,不参与编译。会传递依赖。✅ 是✅ 是数据库驱动(如 mysql-connector-java
test仅用于测试阶段(编译和运行测试代码),不传递依赖。❌ 否❌ 否JUnit、Mockito 等测试库
system与 provided 类似,但需通过 systemPath 显式指定本地路径,不推荐使用。❌ 否❌ 否本地非 Maven 仓库的第三方 JAR
import仅用于 <dependencyManagement>,从其他 POM 导入依赖范围配置,不实际引入依赖。❌ 否❌ 否多模块项目统一管理依赖版本
<!--项目坐标依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<!--作用域范围
test:测试包中有效
provided: lombok servlet-api(tomcat包含) 只在编译、测试、开发阶段会用到,最终打包
时不需要打进去,运行时不使用。
compile:默认 所有地方都可以使用 最常用的
system:本地jar包引入,使用是系统路径 c:/11/11.jar (一般不用)
runtime: 开发,编译不需要,打包,运行 需要的 比如mysql
-->
<scope>test</scope>

三、Spring的IOC思想

1、Spring的三大核心思想 ioc、di、aop

核心思想全称与定义关键作用典型应用场景实现方式
IoCInversion of Control(控制反转)
将对象的创建、依赖管理权交给容器(如Spring),而非程序员手动控制。
解耦对象间的依赖关系,提升灵活性。Bean 生命周期管理、模块化开发通过 IoC 容器(如 ApplicationContext)实现对象的创建和依赖管理。
DIDependency Injection(依赖注入)
IoC 的具体实现方式,由容器动态注入对象所需的依赖(而非对象自己查找)。
减少硬编码依赖,增强可测试性和可维护性。服务层注入DAO、配置类注入组件通过 @Autowired@Resource 或 XML 配置自动/手动注入依赖对象。
AOPAspect-Oriented Programming(面向切面编程)
将横切关注点(如日志、事务)与核心业务逻辑分离。
减少重复代码,降低耦合,集中处理系统级功能。日志记录、事务管理、权限校验通过动态代理(JDK/CGLIB)和切面(@Aspect)实现方法拦截与增强。

通俗理解

  • IoC:由“工厂”(Spring)负责生产对象,程序员不再需要 new

  • DI:工厂不仅生产对象,还自动组装对象之间的依赖(如给汽车装配发动机)。

  • AOP:在不修改汽车零件(业务代码)的情况下,为所有车辆统一安装GPS(日志/事务)

2、IOC思想的理解,自己的话描述一下。

  • IOC全称Inversion Of Control 控制反转,核心的作用就是将原来由开发人员来控制的对象管理操作交由Spring来管理,spring创建出来的对象,会放到spring的一个容器中存储,使用对象的时候可以从容器直接拿,这个容器就称为spring ioc容器。

3、IOC容器创建的两种方式

  • xml配置文件配置方式【使用读取xml中的bean来创建对象】
  • 纯注解方式 @Configuration

 

  • BeanFactory接口:这是 IOC 容器的基本实现,是 Spring 内部使用的接口。面向 Spring 本身,不提供给开发人员使用。
  • ApplicationContext接口:BeanFactory 的子接口,提供了更多高级特性。面向 Spring 的使用者,几乎所有场合都使用 ApplicationContext 而不是底层的 BeanFactory。
  • ClassPathXmlApplicationContext:通过读取类路径下的 XML 格式的配置文件创建 IOC 容器对象
  • AnnotationConfigApplicationContext:通注解@Configuration方式创建 IOC 容器对象。

4、IOC容器创建对象的注解

  • @Component 类上使用。
  • @Bean 方法上使用,方法的返回值是对象,将返回的对象交给ioc容器管理。

5、IOC容器底层如何创建对象

  • 构造方法(无参构造|有参构造)
  • 工厂方法(静态工厂方法|实例工厂方法)

6、对象何时创建,何时销毁, 能不能延迟创建,初始化方法和销毁方法

  • 单例模式
  1. 创建时机:容器启动时(ApplicationContext 初始化)立即创建。                 
    默认情况下,在创建ioc容器时,创建对象。
  2. 销毁时机:容器关闭时(调用 context.close())。
  3. 单例模式的延迟初始化(Lazy)    通过 @Lazy 注解,使得单例 Bean 在第一次使用时才创建。而不是在创建容器时创建对象。
  4. 创建对象:默认调用无参构造方法创建对象。 无参构造只执行一遍。
  5. 初始化方法(在对象创建后,自动调用的方法)。 初始化方法@PostConstruct注释的方法只执行一遍。
  6. 销毁前调用的方法(关闭ioc容器时,自动调用的) 。@PreDestroy注释的方法只执行一次。
  • 多例模式
  1. 创建时机:每次调用 getBean() 或依赖注入时创建新实例。
  2. 销毁时机:对象 由 jvm虚拟机 垃圾回收器 在 后台进程自动销毁。
  3. 不用延迟创建:本身就是“延迟创建”,无需额外配置。
  4. 创建对象:多例模式下的,可以创建很多对象,不是提前创建的对象,是使用时创建对象每获取一次对象,创建一个对象,执行一次构造方法,执行一次初始化方法
  • 初始化方法和销毁方法
@Component
public class MyBean {@PostConstruct // 初始化方法public void init() {System.out.println("Bean 初始化完成!");}@PreDestroy // 销毁方法public void cleanup() {System.out.println("Bean 即将销毁!");}
}
  • 单例 vs 多例模式对比
特性单例模式(Singleton)多例模式(Prototype)
创建时机容器启动时立即创建(默认行为)每次 getBean() 或依赖注入时创建新实例
内存占用全局共享一个实例,节省内存每次请求新实例,内存占用较多
线程安全需自行保证线程安全(如加锁或使用无状态对象)每次返回新实例,默认线程安全(无共享状态)
销毁管理容器关闭时自动销毁Spring 不管理销毁,需手动清理(如实现 DisposableBean
适用场景无状态服务(如工具类、配置类、Service 层)有状态对象(如用户会话、请求上下文、DTO 封装)

 7、从IOC容器获取对象的三种方式

  • 名称(强制类型转换)
  • 类型(容易出错,需要一个对象,返回了2个对象)
  • 名称+类型(推荐)
// 2.1 通过类型获取Goods goods1 = context.getBean(Goods.class);
// 2.2 通过名称获取  需要强制类型转换
Goods goods2 = (Goods) context.getBean("goods");
// 2.3 通过名称和类型获取  推荐
Goods goods3 = context.getBean("goods",Goods.class);

8、bean的作用域范围

  • singleton
  • prototype
  • request
  • session
作用域描述创建时机销毁时机线程安全适用场景
Singleton单例模式,默认作用域,整个 IoC 容器中只存在一个 Bean 实例。容器启动时创建容器关闭时销毁需自行保证(如无状态设计或加锁)无状态服务(如工具类、配置类、Service 层)
Prototype多例模式,每次请求(getBean() 或依赖注入)都会创建一个新的 Bean 实例。每次调用时创建Spring 不管理,依赖 JVM 垃圾回收销毁默认安全(每个实例独立)有状态对象(如用户会话、线程上下文)
Request每个 HTTP 请求创建一个新的 Bean 实例(仅适用于 Web 应用)。每次 HTTP 请求时创建请求结束时销毁安全(每个请求独立实例)请求级数据(如用户表单提交、临时计算)
Session每个用户会话(Session)创建一个 Bean 实例(仅适用于 Web 应用)。用户首次访问时创建会话超时或失效时销毁安全(每个会话独立实例)用户级数据(如购物车、登录状态)

9、相关的注解有哪些?各自作用?

  • @Configuration
  • @ComponentScan
  • @Component
  • @Bean
  • @Lazy
  • @Scope
  • @PostConstruct
  • @PreDestroy
  • @Data
  • @Getter
  • @Setter
  • @Test

Spring 核心注解

注解作用示例/备注
@Configuration标记类为配置类,定义 Spring 容器配置(替代 XML)。java @Configuration public class AppConfig { ... }
@ComponentScan自动扫描指定包下的组件(@Component@Service 等)。java @ComponentScan("com.example")
@Component通用注解,标记类为 Spring 管理的 Bean(泛化角色)。java @Component public class MyBean { ... }
@Bean在配置类中定义方法返回值作为 Bean(常用于第三方库集成)。java @Bean public DataSource dataSource() { return new HikariDataSource(); }
@Lazy延迟初始化 Bean(首次使用时创建,默认单例模式立即初始化)。java @Lazy @Service public class LazyService { ... }
@Scope指定 Bean 的作用域(如 singletonprototyperequest)。java @Scope("prototype") @Component public class UserSession { ... }

生命周期回调注解

注解作用示例/备注
@PostConstruct标记方法在 Bean 初始化后执行(依赖注入完成后)。java @PostConstruct public void init() { ... }
@PreDestroy标记方法在 Bean 销毁前执行(容器关闭时)。java @PreDestroy public void cleanup() { ... }

Lombok 简化代码注解

注解作用生成代码示例(等效代码)
@Data自动生成 getter/settertoString()equals()hashCode()java @Data public class User { private String name; } → 生成所有方法
@Getter仅生成 getter 方法。java @Getter public class User { private String name; }
@Setter仅生成 setter 方法。java @Setter public class User { private String name; }

 测试相关注解

注解作用示例/备注
@TestJUnit 测试方法标记(需 JUnit 依赖)。java @Test public void testMethod() { ... }

四、Spring的DI思想

1、DI依赖注入有哪些方式?

方式一:配置文件注入(了解)
setter方法注入,有参构造注入,p命名空间注入

方式二:注解注入(最常用)

  1. @Autowired+@Qualifier     
  2. @Resources     
  3. @Value
  • @Autowired+@Qualifier
  1. @Autowired 自动注入,默认先通过类型查找,当一个接口有多个实现类,再通过名称查找对象
  2. @Qualifier和@Autowired配合使用,用于强制指定通过名称注入
  • @Value
  1. 给属性注入值(适用于简单数据类型 8种基本类型和对应的包装类及String类型)
  • @Autowired
  1. 自动注入(自动从spring容器中查找接口的实现类,实现注入)
  • @Resource(JSR-250 标准)

  • 作用:类似于 @Autowired,但默认按名称注入(找不到名称再按类型)。

  • 可用位置:字段、Setter 方法(不支持构造方法)。

  • 行为

    • 如果指定 name,则按名称查找 Bean。

    • 如果不指定 name,则默认使用字段名/方法名作为 Bean 名称查找。

2、DI依赖注入常用的注解有哪些?

  • @Value 用于给简单数据类型赋值(字面量)
  • @Autowired + @Qualifier 给对象类型赋值
  • @Resource 给对象类型赋值

3、IOC创建对象相关的注解有哪些?(对比)

  • @Component 类上使用。
  • @Bean 方法上使用,方法的返回值是对象,将返回的对象交给ioc容器管理。

4、@Autowired 和 @Resource的区别?

1. 来源不同

  • @Autowired

   属于 Spring 框架( org.springframework.beans.factory.annotation )。
   是 Spring 特有的注解,与其他 Spring 功能深度集成。

  • @Resource

   属于 Java 标准注解( javax.annotation.Resource ),遵循 JSR-250 规范。
   不依赖 Spring,但 Spring 对其提供了支持。

2. 默认注入方式不同

  • @Autowired
  1. 默认按 类型(byType) 注入。
  2. 如果存在多个同类型的 Bean,会尝试按 名称(byName) 匹配(需配合 @Qualifier 指定名称)。
  • @Resource
  1. 默认按 名称(byName) 注入。
  2. 如果未指定名称,则退化为按类型(byType)注入。

5、建对象相关注解

  • @Component 类上使用 通用的javabean
  • @Bean 方法上使用,方法的返回值是对象,将返回的对象交给ioc容器管理。
  • @Controller @RestController 控制层上使用@RestController=@Controller+@ResponseBody
  • @Service 业务层上使用
  • @Repository 持久层

五、SpringMVC

1、get和post的区别?(重点)

对比维度GET 请求POST 请求
参数可见性参数暴露在地址栏中,用户可见参数放在请求体(Body)中,用户不可见
安全性不安全,数据暴露在URL中,不适合传输敏感信息相对“安全”,参数不在URL中显示,适合传输敏感数据
编码方式使用 URLEncoder.encode() 进行URL编码将参数转换为二进制流形式发送
数据长度限制参数长度受限(通常几KB级别),受浏览器和服务器限制理论上无上限,实际由服务器配置决定

2、服务端接收前端请求的方式?(重点)

注解HTTP 方法简写等价形式常见用途
@RequestMapping所有方法无(需手动指定 method)多方法兼容的路由
@GetMappingGET@RequestMapping(method = RequestMethod.GET)查询数据
@PostMappingPOST@RequestMapping(method = RequestMethod.POST)提交数据(如表单/JSON)
@PutMappingPUT@RequestMapping(method = RequestMethod.PUT)更新资源(全量替换)
@DeleteMappingDELETE@RequestMapping(method = RequestMethod.DELETE)删除资源
  • 关键区别:

@RequestMapping 是通用注解,需手动指定 method,灵活性高。

@RequestMapping(value = "/user", method = RequestMethod.GET)  // 仅处理 GET
public String getUser() { return "user"; }@RequestMapping(value = "/user", method = RequestMethod.POST) // 仅处理 POST
public String addUser() { return "added"; }

@GetMapping / @PostMapping 是专用注解,代码更简洁,语义更明确。

  • 联系:
  1. @GetMapping 和 @PostMapping 本质上是 @RequestMapping 的派生注解,底层仍调用 @RequestMapping。
  2. Spring 4.3 后引入这些专用注解,推荐优先使用它们以提高代码可读性。 

3、服务端响应数据给前端的方式?(重点)

前后端分离

对比维度HttpServletResponse@ResponseBody@RestController
所属层级原生 Servlet APISpring MVC 注解Spring MVC 组合注解(= @Controller + @ResponseBody)
使用方式在 Controller 方法中注入并手动写入输出流标注在方法上,Spring 自动将返回值写入响应体标注在类上,所有方法默认返回值直接写入响应体
返回类型可以写入任意格式(字符串、JSON、文件流等),需手动处理支持自动序列化(如 JSON、XML),基于返回对象类型同 @ResponseBody
控制粒度更细粒度,可完全自定义响应内容和头信息控制粒度适中,适合统一返回结构控制粒度较粗,适用于整个控制器
异常处理兼容性需要手动处理异常输出可与 @ControllerAdvice 等配合统一处理异常同 @ResponseBody
是否支持 REST✅ 可以实现,但不够简洁✅ 推荐用于单个方法的 REST 返回✅ 推荐用于整个类的 REST 返回
开发效率较低,需要手动操作输出流中等,Spring 自动处理序列化高,简化了代码结构
适用场景特殊需求(如下载文件、流式输出、自定义协议)普通 REST 接口,返回 JSON/XML 数据构建标准的 RESTful Web 服务
是否推荐使用特殊场景下使用推荐用于非全局 REST 接口强烈推荐用于现代 RESTful 开发

4、转发和重定向的区别和联系?(扩展)

对比项转发(Forward)重定向(Redirect)
行为主体服务端行为客户端(浏览器)行为
请求次数浏览器只发起 1 次请求浏览器至少发起 2 次请求
地址栏变化浏览器地址栏不变浏览器地址栏变化(显示新 URL)
访问范围可转发到当前应用的任意页面(包括 /WEB-INF/ 下的页面)不能访问 /WEB-INF/ 下的页面
跨应用/外部资源不能转发到其他应用可以重定向到外部项目(如 https://example.com)
数据传递可以携带 request 作用域的数据不能携带 request 作用域的数据(需通过 session 或 URL 参数传递)

5、springmvc的内部执行流程图(重点)

1、浏览器发起请求: http://localhost:8080/user/getById?id=1。
2、浏览器解析地址:http://     localhost    8080。
3、定位到硬件服务器 ip 和 软件服务器 8080(tomcat应用)。
4、通过8080----->部署的项目。
5、前端控制器接收请求 解析url路径得到资源路径 /user/getById。
6、前端控制器   通过调用 处理器映射器,查询 handler是否存在。
7、如果路径存在,返回路径的执行链给前端控制器。如果不存在,返回404。
执行链包含了目标方法前的一系列过滤器和拦截器 目标方法路径 及后置的过滤器和拦截器
8、前端控制器 调用处理器适配器 请求执行handler(目标方法)。
9、处理器适配器封装参数到目标方法的参数中(解析httpServletRequest ,调用
request.getParameter方法)。
10、执行目标handler(目标方法) 目标handler响应结果给处理器适配器(数据和视图名)。
11、处理器是配置返回modelandview给前端控制器。
12、前端控制器,请求视图解析器拼接前缀路径和后缀路径,得到完整的视图名
13、前端控制器,将model中的数据,在指定的视图页面上进行渲染。
14、响应结果给前端。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/83856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从代码学习数学优化算法 - 拉格朗日松弛 Python版

文章目录 前言1. 问题定义 (Problem Definition)2. 拉格朗日松弛 (Lagrangian Relaxation)3. 拉格朗日对偶问题 (Lagrangian Dual)4. 次梯度优化 (Subgradient Optimization)5. Python 代码实现导入库和问题定义辅助函数:求解拉格朗日松弛子问题次梯度优化主循环结果展示与绘图…

密码学实验

密码学实验二 一、实验目的&#xff08;本次实验所涉及并要求掌握的知识点&#xff09; 掌握RSA算法的基本原理并根据给出的RSA算法简单的实现代码源程序,以及能够使用RSA对文件进行加密。掌握素性测试的基本原理&#xff0c;并且会使用Python进行简单的素性测试以及初步理解…

力扣面试150题-- 从中序与后序遍历序列构造二叉树

Day 44 题目描述 思路 这题类似与昨天那题&#xff0c;首先来复习一下&#xff0c;后序遍历&#xff0c;对于后序遍历每一个元素都满足以下规律&#xff1a; &#xff08;左子树&#xff09;&#xff08;右子树&#xff09;&#xff08;根&#xff09;&#xff0c;那么我们直…

2区组的2水平析因实验的混区设计

本文是实验设计与分析&#xff08;第6版&#xff0c;Montgomery著傅珏生译)第7章2k析因的区组化和混区设计第7.4节的python解决方案。本文尽量避免重复书中的理论&#xff0c;着于提供python解决方案&#xff0c;并与原书的运算结果进行对比。您可以从Detail 下载实验设计与分析…

反向传播算法——矩阵形式递推公式——ReLU传递函数

总结反向传播算法。 来源于https://udlbook.github.io/udlbook/&#xff0c;我不明白初始不从 x 0 \boldsymbol{x}_0 x0​开始&#xff0c;而是从 z 0 \boldsymbol{z}_0 z0​开始&#xff0c;不知道怎么想的。 考虑一个深度神经网络 g [ x i , ϕ ] g[\boldsymbol{x}_i, \bold…

2025年PMP 学习二十三 16章 高级项目管理

2025年PMP 学习二十三 16章 高级项目管理 文章目录 2025年PMP 学习二十三 16章 高级项目管理高级项目管理战略管理战略管理的组成要素&#xff1a;企业战略转化为战略行动的阶段&#xff1a; 组织战略类型战略组织类型组织级项目管理OPM&#xff08;公司项目管理&#xff09; 组…

Journal of Real-Time Image Processing 投稿过程

投稿要求双栏12页以内(包括参考文献)&#xff0c;这个排版要求感觉不是很严格&#xff0c;我当时就是用普通的双栏的格式去拍的版&#xff0c;然后就提交了&#xff0c;也没单独去下载模版。 投稿过程 12.12 Submission received 12.12 Submission is under technical check 1…

t检验详解:原理、类型与应用指南

t检验详解&#xff1a;原理、类型与应用指南 t检验&#xff08;t-test&#xff09;是一种用于比较两组数据均值是否存在显著差异的统计方法&#xff0c;适用于数据近似正态分布且满足方差齐性的场景。以下从核心原理、检验类型、实施步骤到实际应用进行系统解析。 一、t检验的…

Web4X·AI实业未来家庭普及产品矩阵

Web4XAI实业未来家庭普及产品矩阵 > 打造一个“AI能干活、人更自由”的超级生活系统&#xff08;web4-web4.0&#xff09; 一、AI生活服务类 1、代表产品&#xff1a;  AI语音助手&#xff08;对话、提醒、天气、家庭调度&#xff09;  AI陪护机器人&#xff08;老…

Centos上搭建 OpenResty

一、OpenResty简介 OpenResty 是基于 Nginx 的扩展平台&#xff0c;完全兼容 Nginx 的核心功能&#xff08;如 HTTP 服务和反向代理&#xff09;&#xff0c;同时通过内嵌 LuaJIT 支持&#xff0c;允许开发者用 Lua 脚本灵活扩展业务逻辑。它简化了动态逻辑的实现。 二、安装…

项目管理进阶:基于IPD流程的项目管理部分问题及建议书【附全文阅读】

该文档主要探讨了研发项目管理中存在的问题及改进建议。指出项目组织、项目计划、项目监控等方面存在的问题&#xff0c;并给出了相应的设计要点。建议建立跨部门、全流程的项目计划体系&#xff0c;加强风险管理&#xff0c;引入科学的估计方法&#xff0c;建立项目历史数据积…

JVM之GC常见的垃圾回收器

收集器适用区域特点适用场景Serial新生代单线程&#xff0c;STW&#xff08;Stop-The-World&#xff09;客户端小应用Parallel Scavenge新生代多线程&#xff0c;吞吐量优先后台计算任务ParNew新生代Serial 的多线程版配合 CMS 使用CMS老年代并发标记&#xff0c;低延迟响应优先…

免费私有化部署! PawSQL社区版,超越EverSQL的企业级SQL优化工具面向个人开发者开放使用了

1. 概览 1.1 快速了解 PawSQL PawSQL是专注于数据库性能优化的企业级工具&#xff0c;解决方案覆盖SQL开发、测试、运维的整个流程&#xff0c;提供智能SQL审核、查询重写优化及自动化巡检功能&#xff0c;支持MySQL、PostgreSQL、Oracle、SQL Server等主流数据库及达梦、金仓…

HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析

目录 引言 一、协议特性深度对比 1.1 协议工作模型差异 1.2 隧道代理适配难点 二、兼容性架构设计 2.1 双协议接入层设计 2.2 统一隧道内核 三、关键技术实现 3.1 协议转换引擎 3.1.1 HTTP→SOCKS5转换 3.1.2 SOCKS5→HTTP转换 3.2 连接管理策略 3.2.1 智能连接池 …

3DGS——基础知识学习笔记

1.什么是3D高斯泼溅&#xff08;3D Gaussian Splatting&#xff09;&#xff1f; 目标&#xff1a;从一组稀疏的3D点&#xff08;比如通过相机或激光雷达采集的点云&#xff09;重建出高质量的3D场景&#xff0c;并支持实时渲染。 核心思想&#xff1a;用许多“3D高斯分布”&…

【C++】不推荐使用的std::allocator<void>

文章目录 不推荐使用的std::allocator<void>1. 核心区别2. 成员函数对比(1) allocate 和 deallocate(2) construct 和 destroy 3. 设计动机(1) std::allocator<T>(2) std::allocator<void> 4. 使用场景示例(1) std::allocator<int>(2) std::allocator&…

Go 语言云原生微服务全栈实战:Docker 镜像优化、K8s 编排与 Istio 流量治理

本系列文章将以 Go 语言为主导开发语言&#xff0c;系统性地讲解如何从零构建一个基于微服务架构的应用系统&#xff0c;涵盖以下核心模块&#xff1a; 使用 Go 构建高性能微服务构建精简且高效的 Docker 镜像利用 Kubernetes 进行微服务编排与部署通过 Istio 实现微服务的流量…

windows下authas调试tomcat

一般情况下&#xff0c;我们只需要输入以下代码 java -jar authas.jar调试tomcat时需要加上进程号 java -jar authas.jar <PID> 此外&#xff0c;如果你使用的是 Java 11 或更高版本&#xff0c;你需要添加 --add-opens 参数&#xff0c;以便 Arthas 能够访问 JVM 的内…

01_springboot中bean的生命周期

文章目录 bean的生命周期1. Bean定义阶段2. Bean实例化阶段3. 属性赋值阶段4. 初始化阶段5. 使用阶段6. 销毁阶段 bean的生命周期 在Spring Boot中&#xff0c;Bean的生命周期包括定义、实例化、属性赋值、初始化、使用和销毁等阶段。下面我将详细解释这些阶段&#xff0c;并提…

Oracle基础知识

目录 1.别名的使用 2.AND的优先级高于OR 3.where后面可以接别名&#xff0c;order by后面不可以 4.Oracle中SQL的执行顺序(重点) 5.dual万用表 6.是否区分大小写 7.Oracle常用数据类型 8.Oracle常用函数 (1)length字符、lengthb字节和cast强制类型转换 (2)数据类型转…