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

面试知识点2

文章目录

      • 1. Linux 与 Docker
        • Linux 基本指令
        • VMware 安装 CentOS
        • Docker 拉取镜像创建容器、部署 Spring Boot 项目
      • 2. 关系型数据库 MySQL
        • 数据库语法
        • 多表关联查询
        • 数据库索引
      • 3. 事务与死锁
        • 事务的隔离级别
        • 死锁的原因和避免方法
      • 4. 排序算法与数据结构
        • 二分查找
        • 快速排序
        • 常见数据结构
      • 5. Java 语言基础
        • 面向对象编程思想
        • 常用集合框架
      • 6. 多线程并发知识
        • 多线程的生命周期
        • 线程创建的方式
        • 线程池的原理和核心参数
      • 7. Java 反射和注解编程
        • Java 反射
        • 注解编程
      • 8. JVM 底层原理
        • JVM 的生命周期
        • 内存划分
        • GC 算法
        • 垃圾回收机制
        • 双亲委派模型
        • JVM 调优
      • 9. Spring 框架与 MyBatis
        • Spring IOC
        • Spring AOP
        • MVC 架构思想
        • MyBatis 执行流程
        • Spring Boot 整合 MyBatis、MyBatis-Plus 和 Redis
      • 10. Redis 缓存
        • Redis 数据类型
        • 缓存持久化
        • 缓存雪崩、缓存击穿、缓存穿透
      • 11. 设计模式与原则
        • 设计模式
        • 设计原则
      • 12. 项目管理工具
        • Maven
        • Git
      • 13. ERP 与供应链管理
        • ERP 企业管理软件

1. Linux 与 Docker

Linux 基本指令

Linux 作为开源操作系统,其指令是与系统交互的重要方式。ls 查看目录内容,系统会遍历指定目录下的所有文件和子目录,并将它们的信息显示出来。cd 切换目录时,系统会修改当前工作目录指针,指向新的目录。mkdir 创建新目录时,系统会在文件系统中分配相应的存储空间,并记录目录的元信息。

VMware 安装 CentOS

VMware 是一款虚拟机软件,它通过模拟计算机的硬件环境,让用户可以在一台物理机上同时运行多个不同的操作系统。安装 CentOS 时,VMware 会根据用户的配置为虚拟机分配内存、磁盘空间等资源,然后将 CentOS 系统安装到虚拟机的虚拟磁盘上。

Docker 拉取镜像创建容器、部署 Spring Boot 项目

Docker 是一种容器化技术,镜像相当于容器的模板,它包含了运行应用程序所需的所有文件、依赖和配置。当使用 docker pull 拉取镜像时,Docker 会从 Docker Hub 等镜像仓库下载镜像文件。创建容器时,Docker 会基于镜像创建一个独立的运行环境,容器之间相互隔离,互不影响。部署 Spring Boot 项目时,将项目打包成 Docker 镜像,然后创建并运行容器,就可以实现项目的快速部署和隔离运行。

2. 关系型数据库 MySQL

数据库语法
  • DDL(数据定义语言):用于定义数据库、表、列等结构。例如 CREATE TABLE 语句,系统会根据语句中的定义在数据库中创建相应的表结构,包括表名、列名、数据类型、约束等。
  • DML(数据操作语言):用于插入、更新和删除数据。INSERT INTO 插入数据时,系统会将数据存储到指定表的相应列中。
  • DQL(数据查询语言):用于查询数据。SELECT * FROM 语句会从指定表中检索所有列的数据。
  • DCL(数据控制语言):用于管理用户权限。GRANT 语句会将指定的权限授予指定的用户或角色。
多表关联查询

当需要从多个表中获取相关数据时,就需要使用多表关联查询。例如,在学生表和成绩表中,通过学生 ID 关联,可以查询出每个学生的成绩信息。系统会根据关联条件将多个表中的数据进行匹配和组合,然后返回查询结果。

数据库索引

索引是一种数据结构,用于提高数据库查询的效率。B+ 树是 MySQL 中常用的索引结构,它将数据按照键值有序存储,通过树的结构可以快速定位到需要的数据。覆盖索引是指查询的列都在索引中,不需要回表查询,从而提高查询效率。联合索引是将多个列组合成一个索引,适用于经常同时查询多个列的场景。

3. 事务与死锁

事务的隔离级别
  • 读未提交:一个事务可以读取另一个未提交事务的数据,可能会出现脏读问题,即读取到了其他事务回滚前的数据。
  • 读已提交:一个事务只能读取另一个已提交事务的数据,避免了脏读问题,但可能会出现不可重复读问题,即同一个事务在不同时间读取到的数据不一致。
  • 可重复读:在一个事务中,多次读取同一数据的结果是一致的,避免了不可重复读问题,但可能会出现幻读问题,即一个事务在读取数据时,另一个事务插入了新的数据,导致第一个事务再次读取时出现了新的数据。
  • 串行化:事务串行执行,避免了所有并发问题,但会降低系统的并发性能。
死锁的原因和避免方法

死锁是指两个或多个事务在执行过程中,因争夺资源而造成的一种互相等待的现象。例如,事务 A 持有资源 X 并请求资源 Y,而事务 B 持有资源 Y 并请求资源 X,此时两个事务就会陷入死锁。避免死锁的方法包括合理安排事务执行顺序、减少事务持有资源的时间、使用锁超时机制等。

4. 排序算法与数据结构

二分查找

二分查找适用于有序数组,它的基本思想是将数组分成两部分,然后比较中间元素与目标元素的大小,如果中间元素等于目标元素,则查找成功;如果中间元素大于目标元素,则在左半部分继续查找;如果中间元素小于目标元素,则在右半部分继续查找。每次查找都能将查找范围缩小一半,因此时间复杂度为 O(log n)。

快速排序

快速排序是一种分治算法,它的基本思想是选择一个基准元素,将数组分成两部分,使得左边部分的元素都小于等于基准元素,右边部分的元素都大于等于基准元素,然后分别对左右两部分进行递归排序。快速排序的平均时间复杂度为 O(n log n)。

常见数据结构
  • 数组:是一种连续存储的数据结构,通过下标可以快速访问数组中的元素,时间复杂度为 O(1)。
  • 链表:是一种非连续存储的数据结构,每个节点包含数据和指向下一个节点的指针。链表的插入和删除操作效率较高,时间复杂度为 O(1),但访问元素的效率较低,时间复杂度为 O(n)。
  • :是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。栈常用于实现函数调用栈、表达式求值等。
  • 队列:是一种先进先出(FIFO)的数据结构,只能在队尾进行插入操作,在队头进行删除操作。队列常用于实现任务调度、消息队列等。

5. Java 语言基础

面向对象编程思想
  • 封装:将数据和操作数据的方法封装在一个类中,对外提供统一的接口,隐藏内部实现细节,提高了代码的安全性和可维护性。
  • 继承:允许一个类继承另一个类的属性和方法,子类可以扩展父类的功能,提高了代码的复用性。
  • 多态:同一个方法可以根据对象的不同类型表现出不同的行为,通过方法重载和方法重写实现,提高了代码的灵活性和可扩展性。
常用集合框架
  • ArrayList:是基于数组实现的动态数组,它可以自动扩容。当向 ArrayList 中添加元素时,如果数组容量不足,会创建一个更大的数组,并将原数组中的元素复制到新数组中。
  • HashMap:是基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的某个位置,然后在该位置存储键值对。为了解决哈希冲突,HashMap 采用了链表或红黑树的方式。

6. 多线程并发知识

多线程的生命周期

多线程的生命周期包括新建、就绪、运行、阻塞和死亡五个状态。新建状态是指线程对象被创建但还没有调用 start() 方法;就绪状态是指线程已经准备好运行,等待获取 CPU 资源;运行状态是指线程正在执行;阻塞状态是指线程由于某些原因暂停执行,如等待 I/O 操作完成、等待锁等;死亡状态是指线程执行完毕或因异常终止。

线程创建的方式
  • 继承 Thread:创建一个类继承 Thread 类,并重写 run() 方法,然后创建该类的对象并调用 start() 方法启动线程。
  • 实现 Runnable 接口:创建一个类实现 Runnable 接口,并重写 run() 方法,然后将该类的对象作为参数传递给 Thread 类的构造函数,最后调用 start() 方法启动线程。
线程池的原理和核心参数

线程池是一种管理线程的机制,它预先创建一定数量的线程,当有任务提交时,从线程池中获取一个空闲线程来执行任务。线程池的核心参数包括 corePoolSize(核心线程数)、maximumPoolSize(最大线程数)、keepAliveTime(线程空闲时间)、workQueue(任务队列)等。合理配置这些参数可以提高系统的性能和资源利用率。

7. Java 反射和注解编程

Java 反射

Java 反射是指在运行时动态获取类的信息并调用类的方法和属性的机制。通过反射,可以在运行时创建对象、调用方法、访问属性等。获取字节码对象的三种方式分别是 Class.forName()、类名 .class 和对象 .getClass()Class.forName() 是通过类的全限定名在运行时动态加载类并获取字节码对象;类名 .class 是在编译时就确定了类的字节码对象;对象 .getClass() 是通过对象获取其所属类的字节码对象。

注解编程

注解是一种元数据,它可以为程序元素(类、方法、字段等)添加额外的信息。注解的生命周期包括 RetentionPolicy.SOURCE(只在源码阶段保留)、RetentionPolicy.CLASS(在编译阶段保留)和 RetentionPolicy.RUNTIME(在运行时保留)。通过自定义注解并结合反射机制,可以实现一些特殊的功能,如自动配置、权限验证等。

8. JVM 底层原理

JVM 的生命周期

JVM 的生命周期包括启动、运行和结束三个阶段。启动阶段是指 JVM 加载并执行主类的 main() 方法;运行阶段是指 JVM 执行 Java 程序的过程;结束阶段是指 JVM 退出,可能是因为程序正常结束、出现异常或调用了 System.exit() 方法。

内存划分
  • :是 JVM 中最大的一块内存区域,用于存储对象实例。堆内存被划分为新生代和老年代,新生代又分为 Eden 区和两个 Survivor 区。
  • :每个线程都有自己的栈,用于存储局部变量、方法调用栈等信息。栈中的数据是线程私有的,随着线程的创建而创建,随着线程的结束而销毁。
  • 方法区:用于存储类的信息、常量、静态变量等。在 JDK 1.8 之前,方法区也被称为永久代,JDK 1.8 之后,方法区被元空间取代。
GC 算法
  • 标记 - 清除算法:首先标记出所有需要回收的对象,然后清除这些对象所占用的内存空间。该算法会产生内存碎片。
  • 标记 - 整理算法:在标记出需要回收的对象后,将存活的对象向一端移动,然后清除边界以外的内存空间,避免了内存碎片的产生。
  • 复制算法:将内存分为大小相等的两块,每次只使用其中一块。当这块内存用完后,将存活的对象复制到另一块内存中,然后清除原来的内存空间。该算法的效率较高,但会浪费一半的内存空间。
垃圾回收机制

垃圾回收机制是 JVM 自动管理内存的一种机制,它会定期检测并回收不再使用的对象所占用的内存空间。常见的垃圾回收器有 Serial 回收器、Parallel 回收器、CMS 回收器和 G1 回收器等。

双亲委派模型

双亲委派模型是 JVM 类加载的一种机制,它规定了类加载器在加载类时,首先会将加载请求委托给父类加载器,如果父类加载器无法加载该类,才会由当前类加载器自己加载。这种机制保证了类加载的安全性和唯一性,避免了不同类加载器加载同一个类的问题。

JVM 调优

JVM 调优是指通过调整 JVM 的参数,如堆内存大小、垃圾回收器类型等,来提高系统的性能和稳定性。例如,适当增大堆内存大小可以减少垃圾回收的频率,提高系统的响应速度。

9. Spring 框架与 MyBatis

Spring IOC

Spring IOC(控制反转)是 Spring 框架的核心特性之一,它通过容器来管理对象的创建和依赖注入。在传统的编程方式中,对象的创建和依赖关系的管理由程序员手动完成,而在 Spring IOC 中,这些工作由 Spring 容器负责。通过配置文件或注解的方式,将对象的创建和依赖关系告诉 Spring 容器,容器会在需要时自动创建对象并注入依赖,降低了代码的耦合度。

Spring AOP

Spring AOP(面向切面编程)是 Spring 框架的另一个重要特性,它允许在不修改原有代码的情况下,对程序的某些功能进行增强。AOP 通过将横切关注点(如日志记录、事务管理等)从业务逻辑中分离出来,以切面的形式进行统一管理。在 Spring 中,AOP 主要通过代理模式实现,有基于 JDK 动态代理和 CGLIB 代理两种方式。

MVC 架构思想

MVC(Model-View-Controller)是一种软件设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理业务逻辑和数据;视图负责展示数据;控制器负责接收用户的请求,调用模型进行处理,并将处理结果返回给视图进行展示。这种架构模式使得代码的结构更加清晰,易于维护和扩展。

MyBatis 执行流程

MyBatis 是一个持久层框架,它的执行流程大致如下:首先,通过配置文件或注解的方式定义 SQL 语句;然后,创建 SqlSessionFactory 对象,该对象用于创建 SqlSession 对象;接着,通过 SqlSession 对象执行 SQL 语句,获取结果集;最后,关闭 SqlSession 对象。

Spring Boot 整合 MyBatis、MyBatis-Plus 和 Redis

Spring Boot 是一个快速开发框架,它可以方便地整合其他框架。整合 MyBatis 时,需要配置数据源、Mapper 接口和 SQL 映射文件;整合 MyBatis-Plus 时,可以利用 MyBatis-Plus 提供的强大功能,如自动生成 CRUD 方法、分页查询等;整合 Redis 时,需要配置 Redis 连接信息,并使用 RedisTemplate 或 StringRedisTemplate 操作 Redis 缓存。

10. Redis 缓存

Redis 数据类型
  • 字符串:是最基本的数据类型,可以存储任意类型的数据,如数字、字符串等。
  • 哈希:用于存储键值对的集合,适合存储对象信息。
  • 列表:是一个有序的字符串列表,可以在列表的两端进行插入和删除操作,常用于实现消息队列。
  • 集合:是一个无序的字符串集合,不允许有重复元素,支持交集、并集、差集等操作。
  • 有序集合:是一个有序的字符串集合,每个元素都有一个分数,通过分数进行排序,常用于实现排行榜等功能。
缓存持久化

Redis 提供了两种持久化方式:RDB(Redis Database)和 AOF(Append Only File)。RDB 是将 Redis 在某个时间点的数据快照保存到磁盘上,优点是文件体积小,恢复速度快;缺点是可能会丢失最后一次快照之后的数据。AOF 是将 Redis 的写操作以日志的形式追加到文件中,优点是数据安全性高,几乎不会丢失数据;缺点是文件体积大,恢复速度慢。

缓存雪崩、缓存击穿、缓存穿透
  • 缓存雪崩:是指大量缓存同时失效,导致大量请求直接访问数据库,造成数据库压力过大甚至崩溃。可以通过设置不同的过期时间、使用多级缓存等方式避免缓存雪崩。
  • 缓存击穿:是指某个热点缓存失效,导致大量请求直接访问数据库。可以通过使用互斥锁、设置永不过期等方式解决缓存击穿问题。
  • 缓存穿透:是指请求的数据在缓存和数据库中都不存在,导致大量请求直接访问数据库。可以通过布隆过滤器、缓存空值等方式避免缓存穿透。

11. 设计模式与原则

设计模式
  • 单例模式:保证一个类只有一个实例,并提供一个全局访问点。常见的实现方式有饿汉式、懒汉式、双重检查锁定等。
  • 桥接模式:将抽象部分与实现部分分离,使它们可以独立变化。例如,不同颜色和形状的图形组合,颜色和形状可以独立变化。
  • 工厂模式:定义一个创建对象的接口,让子类决定实例化哪个类。简单工厂模式通过一个工厂类创建不同类型的对象;工厂方法模式将创建对象的逻辑延迟到子类中实现。
  • 策略模式:定义一系列算法,并将每个算法封装起来,使它们可以相互替换。例如,电商系统中不同的促销策略可以通过策略模式实现。
设计原则
  • 单一职责原则:一个类应该只有一个引起它变化的原因,即一个类只负责一项职责。这样可以提高类的内聚性,降低类之间的耦合度。
  • 开闭原则:软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。通过使用抽象和多态等技术,可以在不修改原有代码的情况下扩展系统的功能。

12. 项目管理工具

Maven

Maven 是一个项目管理和构建工具,它通过 pom.xml 文件管理项目的依赖、编译、打包等。在 pom.xml 文件中,可以定义项目的坐标、依赖库、插件等信息。Maven 会根据这些信息自动下载所需的依赖库,并执行相应的构建任务,如编译、测试、打包等。

Git

Git 是一种分布式版本控制系统,它可以记录项目的历史变更,方便团队成员之间的协作开发。通过 git clone 可以克隆远程仓库到本地;使用 git add 将修改的文件添加到暂存区;使用 git commit 将暂存区的文件提交到本地仓库;使用 git push 将本地仓库的变更推送到远程仓库;使用 git pull 从远程仓库拉取最新的变更。

13. ERP 与供应链管理

ERP 企业管理软件

ERP(Enterprise Resource Planning)是

相关文章:

面试知识点2

文章目录 1. Linux 与 DockerLinux 基本指令VMware 安装 CentOSDocker 拉取镜像创建容器、部署 Spring Boot 项目 2. 关系型数据库 MySQL数据库语法多表关联查询数据库索引 3. 事务与死锁事务的隔离级别死锁的原因和避免方法 4. 排序算法与数据结构二分查找快速排序常见数据结构…...

Django项目之订单管理part1

一.前言 我们前面把django的常用知识点给讲完了,现在我们开始项目部分,项目是一个订单管理系统,我们同时也会在项目之中也会讲一些前面没有用到的知识点。 项目大概流程如下: 核心的功能模块: 认证模块,用…...

基于SSM+Vue的智能汽车租赁平台设计和实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...

deepseek本地调用

目录 1.介绍 2.开始调用 2.1模型检验 2.2 通过url调用 3.总结 1.介绍 这篇博客用来教你如何从本地调用ollama中deepseek的模型接口,直接和deepseek进行对话。 2.开始调用 2.1模型检验 首先要保证ollama已经安装到本地,并且已经下载了deepseek模型…...

文件同步工具哪家强?FreeFileSync 免费无限制

FreeFileSync 是一款备受推崇的开源文件同步与备份软件,凭借其卓越的功能和简洁直观的界面,赢得了全球用户的青睐。该软件不仅支持跨平台操作,兼容 Windows、macOS 和 Linux 系统,还能帮助用户在不同设备之间无缝同步文件&#xf…...

捷米特 JM - RTU - TCP 网关应用 F - net 协议转 Modbus TCP 实现电脑控制流量计

一、项目背景 在某工业生产园区的供水系统中,为了精确监测和控制各个生产环节的用水流量,需要对分布在不同区域的多个流量计进行集中管理。这些流量计原本采用 F - net 协议进行数据传输,但园区的监控系统基于 Modbus TCP 协议进行数据交互&…...

Coze扣子怎么使用更强大doubao1.5模型

最近,豆包刚刚发布了最新的doubao1.5系列模型,并且加量不加价。 在性能极大进步的情况下,价格还与之前一致。真是业界良心了。 在同样的价格下,肯定要使用性能更强大的模型嘛 于是我准备把所有的智能体和工作流切换到doubao1.5…...

layui 远程搜索下拉选择组件(多选)

模板使用&#xff08;lay-module/searchSelect&#xff09;&#xff0c;依赖于 jquery、layui.dist 中的 dropdown 模块实现&#xff08;所以data 格式请参照 layui文档&#xff09; <link rel"stylesheet" href"layui-v2.5.6/dist/css/layui.css" /&g…...

嵌入式学习(18)---Linux文件编程中的进程

一、进程的概念 进程:(用来描述 程序动态执行的过程&#xff0c;方便操作系统管理的) 进行中的程序 程序的一次执行过程 (内存 CPU) 程序的实例 程序 ----加载到内存----> 进程 应用场景: 实现并发 同一时刻 同时发生 并行 …...

一.AI大模型开发-初识机器学习

机器学习基本概念 前言 本文主要介绍了深度学习基础&#xff0c;包括机器学习、深度学习的概念&#xff0c;机器学习的两种典型任务分类任务和回归任务&#xff0c;机器学习中的基础名词解释以及模型训练的基本流程等。 一.认识机器学习 1.人工智能和机器学习 人工智能&am…...

RoCE和 TCP的区别

RoCE&#xff08;RDMA over Converged Ethernet&#xff09;和 TCP&#xff08;Transmission Control Protocol&#xff09;都是用于数据传输的协议&#xff0c;但它们在多个方面存在显著区别&#xff0c;以下为你详细介绍&#xff1a; 设计目标 RoCE&#xff1a;主要设计目标…...

勒索病毒攻击:如何应对和恢复

近年来,勒索病毒(Ransomware)已经成为全球信息安全领域最具破坏力的威胁之一。无论是个人用户,还是大中型企业,甚至政府机构,勒索病毒的攻击频率和破坏性日益增加。2020年及2021年,勒索病毒攻击不仅数量激增,且其攻击手法、目标和传播方式也变得更加复杂、精密和具有针…...

解决MySQL错误:You can‘t specify target table ‘xxx‘ for update in FROM clause

目录 错误复现场景原因分析解决方案方法1&#xff1a;使用派生表&#xff08;推荐&#xff09;方法2&#xff1a;改用JOIN操作方法3&#xff1a;使用临时表 总结 在编写MySQL的UPDATE或DELETE语句时&#xff0c;如果子查询中直接引用了要操作的目标表&#xff0c;可能会遇到一个…...

在Linux上安装和使用Docker

在Linux上安装和使用Docker&#xff1a;一步步指南 Docker是一种流行的容器化平台&#xff0c;它可以帮助开发者轻松构建、部署和运行应用程序。在本文中&#xff0c;我们将介绍如何在Linux系统上安装Docker&#xff0c;并提供一些常用的Docker命令和使用说明。 1. 安装Docke…...

【Git】四、标签管理

文章目录 Ⅰ. 理解标签Ⅱ. 创建标签① 轻量级标签② 含附注类标签 Ⅲ. 操作标签 Ⅰ. 理解标签 ​ 标签 tag &#xff0c;可以简单的理解为是 对某次 commit 的一个标识&#xff0c;相当于起了一个别名。例如&#xff0c;在项目发布某个版本的时候&#xff0c;针对最后一次 com…...

elementui中aria-hidden报错

浏览器检查的原因&#xff0c;不影响功能&#xff0c;但会在控制台报红 解决办法&#xff1a; 在对应元素设置display:none .el-radio__original {display: none !important;}...

DeepSeek 助力 Vue 开发:打造丝滑的表单验证(Form Validation)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

【MySQL】简单掌握数据类型与表操作,让数据库性能飞跃

个人主页&#xff1a;♡喜欢做梦 欢迎 &#x1f44d;点赞 ➕关注 ❤️收藏 &#x1f4ac;评论 目录 &#x1f333;一、数据类型 &#x1f343;1.数值类型 &#x1f342;整型类型 &#x1f342;浮点型类型 &#x1f342;定点数类型 &#x1f343;2.字符串类型 3.&am…...

JUC并发编程——Java线程(一)

文章目录 1. 线程的创建1.1 方法1&#xff1a; 直接使用Thread1.2 方法2&#xff1a;使用Runnable配合Thread1.3 方法3&#xff1a;FutureTask配合Thread 2. 线程运行2.1 原理2.2 常见方法2.2.1 start与run2.2.2 sleep与yield2.2.3 join2.2.4 interrupt 3. 主线程和守护线程4. …...

Python入门笔记3

ros小车亚博官网例子延时性基本上跑完了&#xff0c;发现自己一些基础Python语法还不熟悉。 本节学习循环&#xff1a; while\for\break\continue 1. while 循环 while 循环会在条件表达式为真时&#xff0c;重复执行一段代码块&#xff0c;直到条件表达式变为假。 格式&am…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...