【SpringBoot面试题整理-超级有效】
文章目录
- 1.SpringBoot如何解决跨域问题?
- 2.为什么要用Spring Boot?
- 3. Spring Boot的约定优于配置,你的理解是什么?
- 4. SpringBoot有哪些优点?
- 5. Spring Boot中自动装配机制的原理?
- 6.SpringBoot支持哪些日志框架?
- 7. SpringBoot Starter的工作原理?
- 10.SpringBoot的优点及缺点?
- 11.运行SpringBoot有哪几种方式?
- 12. SpringBoot需要独立的容器运行吗?
- 13.开启SpringBoot特性有哪几种方式?
- 15. SpringBoot事物的使用?
- 17.如何在SpringBoot启动的时候运行特定的代码?
- 18.SpringBoot有哪几种读取配置的方式?
- 20. SpringBoot的自动配置原理是什么?
- 21.你如何理解SpringBoot配置加载顺序?
- 25. 如何使用 Spring Boot 生成一个WAR 文件?
- 26.什么是SpringProfifiles?
- 27.SpringBoot 多数据源拆分的思路?
- 28. SpringBoot多数据源事务如何管理?
- 29.保护SpringBoot应用有哪些方法?
- 30.如何实现SpringBoot应用程序的安全性?
- 32. SpringBoot中如何解决跨域问题?
- 33.SpringBoot中的监视器是什么?
- 34.如何使 用Spring Boot实现全局异常处理?
- 36. Spring Boot性能如何优化?
- 38. SpringBoot微服务中如何实现session共享?
- 40.SpringBoot中的starter到底是什么?
- 42.spring-boot-starter-parent有什么用?
- 43.SpringBoot如何实现打包?
1.SpringBoot如何解决跨域问题?
即在我们所有响应头配置允许跨域访问,CORS也已经成为主流的跨域解决方案。
在项目中创建一个新的配置文件添加@Configuration注解实现WebMvcConfigurer接口重写addCorsMappings方法并设置允许跨域的代码
2.为什么要用Spring Boot?
一、独立运行
Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
二、简化配置
spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。
三、自动配置
Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。
四、无代码生成和XML配置
Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。
3. Spring Boot的约定优于配置,你的理解是什么?
约定优于配置,并不是零配置或者完全没有配置,而是通过约定来减少配置
4. SpringBoot有哪些优点?
1)Spring Boot是一个依靠大量注解实现自动化配置的全新框架。在构建Spring应用时,我们只需要添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Spring应用。
2)直接嵌入Tomcat、Jetty 和Undertow 服务器(无须部署WAR文件)
5. Spring Boot中自动装配机制的原理?
6.SpringBoot支持哪些日志框架?
推荐和默认的日志框架是哪个?
Spring Boot 支持 Java Util Logging、Log4j2、Lockback 作为日志框架,如果你使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架。
7. SpringBoot Starter的工作原理?
1.提供了一个配置类,该配置类定义了我们需要的对象的实例化过程;
2.提供了一个spring.factories文件,包含了配置类的全限定名;
3.将配置类和spring.factories文件打包为一个启动器starter;
4.程序启动时通过加载starter.jar包的spring.factories文件信息,然后通过反射实例化文件里面的类。
8.SpringBoot2.x有什么新特性?与1.x的区别?
9. SpringBoot支持什么前端模板?
10.SpringBoot的优点及缺点?
优点:
1、创建独立Spring应用
2、内嵌web服务器
3、自动starter依赖,简化构建配置
4、自动配置Spring以及第三方功能
5、提供生产级别的监控、健康检查以及外部优化配置
6、无代码生成、无需编写XML
缺点:
1、迭代快
2、封装太深,内部原理复杂,不容易精通
11.运行SpringBoot有哪几种方式?
运行springboot有以下4种方式:1.直接启动 2.解包运行 3.自定义运行 4.使用插件
12. SpringBoot需要独立的容器运行吗?
不必要。Spring Boot应用程序本身是一个独立的容器,可以直接运行,无需依赖其他外部容器。Spring Boot内嵌了一个Servlet容器(如Tomcat、Jetty或Undertow),可以通过简单的配置和命令来启动应用程序。
13.开启SpringBoot特性有哪几种方式?
1. 使用@SpringBootAppliation注解:在主应用程序类上使用`@SpringBootApplication`注解,这个注解包含了多个Spring Boot特性的组合,包括自动配置、组件扫描和启动器依赖导入。
2. 使用@EnableAutoConfiguration注解:可以通过在主应用程序类上使用`@EnableAutoConfiguration`注解,来启用Spring Boot的自动配置特性。这样,Spring Boot会自动根据项目的依赖关系,为应用程序自动配置各种功能。
3. 使用@Configuration注解:可以使用`@Configuration`注解来声明配置类,通过在该类中定义`@Bean`注解的方法,来配置应用程序的各种组件。
4. 使用@Import注解:使用`@Import`注解可以将其他配置类导入到主应用程序类中,从而启用额外的Spring Boot特性。
5. 使用 application.properties 或 application.yml 文件:通过在src/main/resources目录下提供一个名为application.properties或application.yml的配置文件,可以配置应用程序的各种属性和特性。
- SpringBoot实现热部署有哪几种方式?
15. SpringBoot事物的使用?
Spring 事务分两种方式:
编程式事务,通过编码方式实现事务。
声明式事务,基于 AOP将具体业务逻辑与事务处理解耦。本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。(建议采用)
在实际使用中声明式事务用的比较多 ,原因在于声明式事务不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码。
实现声明式事务有两种方式:一种是在 XML 配置文件中做相关的事务规则声明;另一种是基于 @Transactional 注解的方式(用的最多
16.Async异步调用方法?
17.如何在SpringBoot启动的时候运行特定的代码?
第一种:创建类,并实现ApplicationRunner接口,重写run方法
第二种:创建类,实现CommandLineRunner接口,重写run方法
第三种:注解式,创建方法,添加注解:@PostConstruct
注意事项:不管是实现接口还是使用注解来实现功能,他们的类上都需要添加@Component注解
18.SpringBoot有哪几种读取配置的方式?
SpringBoot分别提供3中方式读取项目的application.properties配置文件的内容。这个方式分别为:Environment类、@Value注解以及@ConfigurationProperties注解。
19.什么是JavaConfifig?
20. SpringBoot的自动配置原理是什么?
Spring Boot的自动配置原理基于条件注解和Spring的条件搜寻技术。当Spring Boot启动时,它会自动扫描classpath下的所有jar包寻找可用的配置,并根据这些配置为应用程序创建Spring上下文。
具体来说,Spring Boot的自动配置原理如下:
Spring Boot扫描classpath下META-INF/spring.factories文件,该文件列出了所有自动配置的类。
每个自动配置类都包含一个或多个条件注解(@Conditional),它们决定了是否启用该自动配置类。
根据条件注解,Spring Boot会根据不同的条件属性来搜索Spring上下文中的Bean,如果Bean存在,则自动配置不会被应用。
如果没有找到与条件匹配的Bean,则自动配置会被应用,并将相关的Bean注入到Spring上下文中。
21.你如何理解SpringBoot配置加载顺序?
1、在 SpringApplication 引导类所在的目录下的 /config 文件夹中查找。
2、在类路径中查找,包括 jar 包中的 META-INF/spring.factories 文件中 SpringApplicationInitializer 所引用的配置文件以及总类路径下的 application.properties(application.yml) 文件。
3、通过 spring.config.name 和 spring.config.location 确定的指定位置来加载。
22.如何理解 Spring Boot中的 Starter?
23.如何在 Spring Boot 中添加通用的 JS 代码?
24.Spring Boot 配置的默认 H2 数据库的名宇是上面?
25. 如何使用 Spring Boot 生成一个WAR 文件?
1 修改项目的pom.xml文件
2 创建一个继承SpringBootServletInitializer的类
3 配置Spring Boot项目的入口类
4 执行Maven打包命令
5 部署war包到Servlet容器
26.什么是SpringProfifiles?
Spring Profiles 允许用户根据配置文件(dev,test,prod 等)来注册 bean。因
此,当应用程序在开发中运行时,只有某些 bean 可以加载,而在 PRODUCTION
中,某些其他 bean 可以加载。假设我们的要求是 Swagger 文档仅适用于 QA 环
境,并且禁用所有其他文档。这可以使用配置文件来完成。Spring Boot 使得使用
27.SpringBoot 多数据源拆分的思路?
1、多数据源:就是一个项目中使用多个jdbc连接不同的数据库;
例举:一个公司有两个数据库,一个是专门存放共同配置文件的数据库,一个是数据库垂直业务数据库。(垂直:根据业务划分具体数据库)
2、在一个项目中如何划分多数据源:分包名(业务)划分,或者通过注解方式划分
其实也就是怎么区别这个方法或者这个类具体用的哪个数据库
28. SpringBoot多数据源事务如何管理?
基于 SpringBoot 的多数据源组件,功能强悍,支持 Seata 分布式事务
支持 数据源分组,适用于多种场景,纯粹多库、读写分离、一主多从混合模式
支持数据源敏感配置信息加密 ENC()
支持每个数据库独立初始化表结构 scheme 和数据库 database
支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)
支持 自定义注解,需继承 DS(3.2.0+)
提供并简化 Druid,HikariCp、BeeCp、Dbcp2的快速集成
提供对 Mybatis-Plus、Quartz、ShardingJdbc、P6sy、Jndi等组件的集成方案
提供 自定义数据源来源 方案(如全从数据库加载)
提供项目启动后 动态增加移除数据源 方案
提供 Mybatis 环境下的 纯读写分离 方案
提供使用 spel 动态参数解析数据源方案,内置 spel,session、header,支持自定义
支持 多层数据源嵌套切换(ServiceA >>> ServiceB >>> ServiceC)
提供基于 Seata 的分布式事务方案
提供本地数据源事务方案(附:不能和原生 Spring 事务混合)
29.保护SpringBoot应用有哪些方法?
在生产中使用HTTPS
使用 Snyk 检查你的依赖关系
升级到最新版本
启用 CSRF 保护
使用内容安全策略防止 XSS 攻击
30.如何实现SpringBoot应用程序的安全性?
会话固定攻击:这是一种攻击类型,通过提供相同网站的JSESSIONIDURL 并附加到 URL 中,使用 URL 重写方法,可以窃取您当前的会话。默认情况下,Spring Security Framework 已经处理了这个问题,并且一旦用户登录它就会迁移会话。相应的配置是
保护会话 cookie:恶意脚本可以从浏览器端读取您的 cookie 信息,因此您需要确保您的 cookie 是安全的,并且可以通过制作它们来由服务器端代码访问HttpOnly。为此,您可以在 application.properties 中使用以下配置
在 Https 上运行您的应用程序:确保您在生产中使用 https,并且在这种情况下,您只能通过在 application.properties 中添加以下配置来强制您的 cookie 通过 https 协议传输。
应用 CSP:用户内容安全策略,以避免任何 XSS 攻击。Spring security 默认提供各种安全头。但它不会添加内容安全策略标头。
31.比较一下Spring security和Shiro各 自的优缺点?
32. SpringBoot中如何解决跨域问题?
1)使用 @CrossOrigin 注解:在需要支持跨域的控制器或方法上添加 @CrossOrigin 注解,可以设置允许跨域的域名、请求方法和请求头等信息。2)配置 CorsFilter:可以通过配置 CorsFilter 来解决跨域问题,可以在 WebConfig 配置类中注册 CorsFilter 实例。3)使用 WebMvcConfigurer:通过实现 WebMvcConfigurer 接口并重写 addCorsMappings 方法,可以配置全局跨域请求处理。
33.SpringBoot中的监视器是什么?
Spring boot actuator 是 spring 启动框架中的重要功能之一。Spring boot 监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为 HTTP URL 访问的REST 端点来检查状态。
34.如何使 用Spring Boot实现全局异常处理?
- 使用@ControllerAdvice 注解
- 使用@ExceptionHandler 注解
- 使用 HandlerExceptionResolver 接口
35.如何监视所有SpringBoot微服务?
36. Spring Boot性能如何优化?
1.扫包优化会导致项目启动时间变长。当启动一个大的应用程序,或将做大量的集成测试启动应用程序时,影响会特别明显。会加载一些不需要的多余的实例(beans)。会增加CPU消耗。针对以上三个情况,我们可以移除 @SpringBootApplication 和 @ComponentScan 两个注解来禁用组件自动扫描,然后在我们需要的 bean 上进行显式配置.2.将Servlet容器变成UndertowUndertow是Jboss旗下的一个采用Java开发的灵活的高性能Web服务器,提供包括阻塞和基于NIO的非堵塞机制,吞吐量会比tomcat高出几千,需要先移除tomcat插件。
3.JVM调优
37.如何使用 SpringBoot 自动重装我的应用程序?
38. SpringBoot微服务中如何实现session共享?
1. 使用基于Cookie的session共享:默认情况下,Spring Boot使用基于Cookie的session管理。确保多个微服务的域名和Cookie配置相同,以便在不同的服务之间共享session信息。
2. 使用基于数据库的session共享:将session数据存储在共享的数据库中,以实现不同微服务之间的session共享。可以使用Spring Session将session数据持久化到数据库中。
3. 使用分布式缓存存储session:使用分布式缓存(如Redis、Memcached)来存储session数据,并在多个微服务中共享缓存。可以使用Spring Session和分布式缓存集成来实现。
4. 使用JWT(JSON Web Token)实现状态无关的session管理:JWT是一种基于Token的无状态认证机制,可以在不同的微服务之间共享用户身份信息。使用JWT可以避免session共享的复杂性和管理开销。每个微服务都可以自行验证和解析JWT令牌来获取用户信息。
39您使用了哪些starter maven依赖项?
40.SpringBoot中的starter到底是什么?
Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块。
总结:它整合了这个模块需要的依赖库;提供对模块的配置项给使用者、并可以对配置项提供默认值,使得使用者可以不指定配置时提供默认配置项值,也可以根据需要指定配置项值;提供自动配置类对模块内的Bean进行自动装配
- SpringBoot中如何实现定时任务?
@Scheduled注解方式: Spring Boot通过使用@Scheduled注解来实现定时任务。该注解可以应用于方法上,以指定方法在特定时间执行。它提供了一些灵活的选项来定义任务执行的时间间隔,例如固定延迟、固定速率和固定表达式。
42.spring-boot-starter-parent有什么用?
1. 统一版本管理:`spring-boot-starter-parent`定义了一组被继承的依赖项的版本号。通过继承该父项目,子项目可以省略版本号,而直接使用父项目中定义的版本,保证了项目中各个依赖项的版本一致性。
2. 默认配置和插件管理:`spring-boot-starter-parent`提供了一些默认的配置和插件管理,如编译、测试、打包等。这样,子项目无需显式配置这些共享的构建和插件设置。
3. Maven插件集成:`spring-boot-starter-parent`定义了一组常用的Maven插件,这些插件被广泛用于Spring Boot项目的构建、测试和部署等工作中。
4. 版本升级和维护:`spring-boot-starter-parent`随着Spring Boot的版本发布而升级和更新。通过升级父项目的版本,可以轻松地将子项目迁移到最新的Spring Boot版本,享受新功能和改进。
43.SpringBoot如何实现打包?
Spring Boot有两种打包方式:jar, war。两者区别在于jar内嵌了tomact,而war没有。因此jar部署简单快速,也是Spring Boot默认打包方式。
1、 jar打包 网盘进入”spring-boot-cors “项目目录后输入”cmd”打开命令行工具,运行 mvn clean package -Dmaven.test.skip=true 命令,即可快速打包 Spring Boot 应用。
2、 war打包步骤一:修改pom.xml文件步骤二:排除内置Tomcat步骤三:注册启动类(告诉Tomcat应用入口在哪里)步骤四:war打包生成war包的命令与jar包的方式是一样的,具体命令:mvn clean package -Dmaven.test.skip=true
- 如何使用 Spring Boot 部署到不同的服务器?
相关文章:
【SpringBoot面试题整理-超级有效】
文章目录 1.SpringBoot如何解决跨域问题?2.为什么要用Spring Boot?3. Spring Boot的约定优于配置,你的理解是什么?4. SpringBoot有哪些优点?5. Spring Boot中自动装配机制的原理?6.SpringBoot支持哪些日志框…...

岩土工程仪器多通道振弦传感器信号转换器应用于隧道安全监测
岩土工程仪器多通道振弦传感器信号转换器应用于隧道安全监测 多通道振弦传感器信号转换器VTI104_DIN 是轨道安装式振弦传感器信号转换器,可将振弦、温度传感器信号转换为 RS485 数字信号和模拟信号输出,方便的接入已有监测系统。 传感器状态 专用指示灯方…...

西瓜书读书笔记整理(五)—— 第四章 决策树
第四章 决策树 4.1 基本流程4.1.1 什么是决策树算法4.1.2 决策树学习的目的4.1.3 决策树学习基本过程4.1.4 决策树学习基本算法4.1.5 递归结束的三种情况 4.2 划分选择4.2.1 信息增益(information gain)—— ID3 决策树学习算法属性划分准则4.2.2 信息增…...

STM32 4G学习
硬件连接 ATK-IDM750C模块可直接与正点原子 MiniSTM32F103开发板板载的ATK模块接口(ATK-MODULE)进行连接。 功能说明 ATK-IDM750C是正点原子(ALIENTEK)团队开发的一款高性能4G Cat1 DTU产品,支持移动4G、联通4G和…...
Golang 中实现实时聊天通讯
客户端代码 package mainimport ("fmt""log""net/url""os""os/signal""time""github.com/gorilla/websocket" )func main() {interrupt : make(chan os.Signal, 1)signal.Notify(interrupt, os.Interr…...
前端面试的性能优化部分(5)每天10个小知识点
目录 系列文章目录前端面试的性能优化部分(1)每天10个小知识点前端面试的性能优化部分(2)每天10个小知识点前端面试的性能优化部分(3)每天10个小知识点前端面试的性能优化部分(4)每天…...

【链表OJ 1】移除链表元素val
大家好,欢迎来到我的博客,此题是关于链表oj的第一题,此后还会陆续更新博客,如有错误,欢迎大家指正。 来源:https://leetcode.cn/problems/remove-linked-list-elements/description/ 题目: 方法一:定义prev和cur指针…...

复原 IP 地址——力扣93
文章目录 题目描述回溯题目描述 回溯 class Solution{public:static constexpr int seg_count=4<...

OSPF综合实验
实验题目如下: 实验拓扑如下: 实验要求如下: 【1】R4为ISP,其上只能配置IP地址: R4与其他所有直连设备间使用公有 【2】R3---R5/6/7为MGRE环境,R3为中心站点 【3】整个OSPF环境IP地址为172.16.0.0/16 【4】所有设备…...

安卓4G核心板开发板_MTK6785/MT6785(Helio G95)安卓手机主板方案
联发科MTK6785(Helio G95)安卓核心板采用八核 CPU 具有两个强大的 Arm Cortex-A76 处理器内核,主频高达 2.05GHz,外加六个 Cortex-A55 高效处理器。其强大的图形性能由 Arm Mali-G76 MC4 提供,速度可提升至 900MHz 。 …...

Linux 匿名页的生命周期
目录 匿名页的生成 匿名页生成时的状态 do_anonymous_page缺页中断源码 从匿名页加入Inactive lru引出 一个非常重要内核patch 匿名页何时回收 本文以Linux5.9源码讲述 匿名页的生成 用户空间malloc/mmap(非映射文件时)来分配内存,在内核空间发生…...

设计模式概述与UML图
文章目录 一、设计模式概述1. 软件设计模式的产生背景2. 软件设计模式的概念3. 学习设计模式的必要性4. 设计模式分类(1)创建型模式(2)结构型模式(3)行为型模式 二、UML图1. 类图概述2. 类图作用3. 类图表示…...

使用Vscode编辑keil工程
一、需要安装的插件 1. Keil Assistant 2. C/C 3. 中文配置: 二、插件配置 1. Keil Assistant 添加Keil的安装路径 接下来就可以使用vscode编辑Keil的工程了,调试编译和下载程序需要返回到Keil中进行操作。 三、Vscode常用快捷键 可以自定义进行配置…...

编译工具:CMake(一) | 简介与安装
编译工具:CMake(一) | 简介与安装 1. CMake简介1.1CMake的特点 2. CMake 安装 这个是CMake的图标 1. CMake简介 cmake 是 kitware 公司以及一些开源开发者在开发几个工具套件(VTK)的过程中衍生品,最终形成体系,成为一…...

深度学习(34)—— StarGAN(1)
深度学习(34)—— StarGAN(1) 文章目录 深度学习(34)—— StarGAN(1)1. 背景2. 基本思路3. 整体流程4. StarGAN v2(1) 网络结构(2) mapping network(3) style encoder(4)Loss 和之前…...

ES6系列之let、const、箭头函数使用的坑
变量提升块级作用域的重要性箭头函数this的指向rest参数和arguments 1.ECMAScript与Js的关系 2.Babel转码器 Babel是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在老版本的浏览器执行。这意味着,你可以用ES6的方式编写程序&…...

4.DNS和负载均衡
文章目录 coreDNS概念部署croeDNS测试 kubernetes多master集群结构master节点部署 负载均衡配置部署nginx做四层反向代理安装高可用 keepalivednginx监控脚本修改k8s中组件的配置文件 coreDNS 概念 coreDNS是kubernetes的默认DNS实现。可以为集群中的service资源创建一个资源名…...

【JavaEE进阶】Spring核心与设计思想
文章目录 一. Spring框架概述1. 什么是Spring框架2. 为什么要学习框架?3. Spring框架学习的难点 二. Spring 核心与设计思想1. 什么是容器?2. 什么是IoC?3. Spring是IoC容器4. DI(依赖注入)5. DL(依赖查找) 一. Spring框架概述…...
实习周记第三周
第二周总结 第二周主要是做了一些PC端细节内容。大的地方改的不多,但是小的细节蛮多。 值得一提的是,第二周做的微信小程序,改了很多逻辑。改逻辑需要与后端进行联调,收获很大,思路也愈发清楚。 记录做了什么是好习…...

11. 使用tomcat中碰到的一些问题
文章目录 问题一:Tomcat的startup.bat启动后出现乱码问题二:一闪而退之端口占用问题三:非端口问题的一闪而退问题四:服务器的乱码和跨域问题问题五: 在tomcat\webapps\下创建文件夹为什么tomcat重启就会丢失问题六:Tom…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...