面试题整理
面试题整理
JS 遍历数组的方式
1 | |
Java中遍历数组的方式
1 | |
UNION和UNION ALL的区别
UNION 和 UNION ALL 是 SQL 中用于合并两个或多个 SELECT 语句结果集的关键字。它们的主要区别在于处理重复数据的方式:
- UNION:
- 当使用
UNION时,它会自动去除两个(或多个)查询结果集中相同的行,确保最终结果集中的每一行都是唯一的。 - 这意味着
UNION会在内部执行一个去重操作,这通常需要更多的处理时间和资源,尤其是在处理大型数据集时。
- 当使用
- UNION ALL:
UNION ALL不会去除重复的行,它只是简单地将两个结果集合并在一起,保留所有的重复项。- 因为没有去重的操作,所以
UNION ALL的执行速度通常比UNION更快,并且消耗的系统资源更少。
联合查询调优
JS如何如何发送请求到后端
1 | |
SpringBoot的配置文件有几种形式
application.properties:这是最常见和最基本的配置方式,使用键值对的形式来定义配置项
application.yml 或 application.yaml:AML 是一种人类可读的数据序列化标准,适合表达层次结构数据。相比
.properties文件,它在处理层级关系时更为简洁外部配置文件:你可以将配置文件放置在应用程序外部的位置,这样可以方便地在不同环境中切换配置而无需重新打包应用程序。可以通过命令行参数指定配置文件的位置
环境变量:可以直接通过操作系统的环境变量或云平台提供的环境变量来设置配置项。这种方式非常适合于部署到云端或容器化的应用中
命令行参数:启动应用程序时,可以在命令行上直接传递参数给Spring Boot应用
JVM系统属性:你也可以通过JVM参数来传递配置信息
随机值生成:对于一些不需要精确控制的配置项,如密钥等,可以使用内置的随机值生成器
Profile-specific 配置文件:为了支持多环境配置(开发、测试、生产等),Spring Boot 提供了 profile-specific 的配置文件机制。例如,
application-dev.properties或application-prod.yml可以分别用于开发环境和生产环境@ConfigurationProperties 注解类:可以创建一个Java类,并使用
@ConfigurationProperties注解来绑定配置文件中的属性SPRING_APPLICATION_JSON 环境变量:可以通过设置
SPRING_APPLICATION_JSON环境变量来提供JSON格式的配置
优先级
- ASP.NET Core:配置源按照它们被添加到
ConfigurationBuilder的顺序进行覆盖,即后配置的覆盖先配置的。 - Spring Boot:具有固定的优先级规则,某些配置源总是会覆盖其他特定的配置源,而不论它们是如何或何时被添加的。
相比之下,Spring Boot 使用了一个固定的优先级规则来决定哪个配置源应该覆盖其他配置源。如前所述,Spring Boot 有明确的配置源优先级顺序,并且这个顺序是不可变的。
- 命令行参数 (
--key=value)- 直接在启动应用程序时通过命令行提供的参数。
- 来自
SPRING_APPLICATION_JSON的属性(嵌入在环境变量或系统属性中)- 例如:
SPRING_APPLICATION_JSON='{"key":"value"}'
- 例如:
- ServletConfig 初始化参数
- 如果你的应用是一个Web应用,那么可以通过ServletConfig设置初始化参数。
- ServletContext 初始化参数
- 类似于ServletConfig参数,但是针对整个Web应用程序上下文。
- JNDI 属性 (java:comp/env)
- Java Naming and Directory Interface, 用于查找命名和目录服务中的资源。
- Java 系统属性 (System.getProperties())
- 使用
-D参数传递给 JVM 的系统属性。
- 使用
- 操作系统环境变量
- 操作系统级别的环境变量。
- 随机值 (random.* )
- Spring Boot 内置的随机值生成器,如
${random.value}、${random.int}等。
- Spring Boot 内置的随机值生成器,如
- 打包外部配置文件
- 包括但不限于
application.properties或application.yml文件,这些文件位于标准位置之外,并通过spring.config.location指定。
- 包括但不限于
- 打包内部配置文件
- 包含在应用程序jar包内的
application-{profile}.properties或application-{profile}.yml文件。
- 包含在应用程序jar包内的
- @Configuration 类上的 @PropertySource 注解
- 在Spring配置类上使用
@PropertySource来指定额外的属性文件。
- 在Spring配置类上使用
- 默认属性 (由 SpringApplication.setDefaultProperties 指定)
- 应用程序启动时通过编程方式设置的默认属性。
SpringBoot 的配置文件生效位置
- 当前目录的
/config子目录:这是为了方便开发和测试而提供的一个默认位置。 - 当前目录:直接放置在应用程序启动路径下的配置文件也会被自动读取。
- 类路径中的
/config包:对于打包的应用程序,这通常是src/main/resources/config目录。 - 类路径根目录:通常是指
src/main/resources目录。
这些位置按照优先级从高到低排列,意味着如果同一个配置项存在于多个位置,则较高优先级位置中的配置会覆盖较低优先级位置中的配置。