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

网新恒天八股总结

  1. Java的基本数据类型

    四类八种

    整数类型:byte,short,int,long

    浮点类型:float,double

    字符类型:char

    布尔类型:boolean

  2. char类型的范围

    0 ~ 65535,可以表示16位无符号整数

  3. equals和==的区别

    image-20241124094353590

  4. &,&&的区别

    image-20241124094451577

  5. String,StringBuffer,StringBuilder的区别,运行效率排序

    image-20241124094635368

  6. 集合的介绍

    在 Java 中,集合是用于存储和操作对象的工具,主要分为两大类:CollectionMap

    Collection 接口包括三种子接口:ListSetQueue

    1. List 是有序的、可重复的集合,常用的有ArrayListLinkedListVector,其中 ArrayList 基于动态数组实现,查询快增删满。LinkedList 基于链表实现,增删快查询慢。Vector线程安全的动态数组,性能较低。
    2. Set 是无序的、不可重复的集合,例如 HashSetTreeSet,其中 HashSet 基于哈希表实现,TreeSet 基于红黑树实现并支持排序。LinkedHashSet基于链表和哈希表,按插入顺序存储。
    3. Queue 是遵循先进先出(FIFO)规则的队列,例如 PriorityQueueLinkedList

    Map 接口则用于存储键值对(key-value),如 HashMapTreeMapHashMap 是无序的基于哈希表实现,TreeMap 按键的自然顺序排序基于红黑树实现。Hashtable线程安全的哈希表,性能较低。LinkedHashMap按插入顺序存储键值对。

    集合框架还提供了工具类 CollectionsArrays,用于操作集合和数组,比如排序、搜索等。

  7. 多线程的创建方式

    四种

    1. 继承 Thread

    实现方式:
    • 创建一个类继承 Thread 类。
    • 重写 Thread 类的 run() 方法,将线程执行的逻辑写在 run() 方法中。
    • 创建该类的实例并调用 start() 方法启动线程。
    特点:
    • 简单直观,但不能继承其他类(Java 中不支持多继承)。
    • 适合不需要共享资源的场景。

    2. 实现 Runnable 接口

    实现方式:
    • 创建一个类实现 Runnable 接口。
    • 实现 Runnable 接口的 run() 方法,将线程逻辑写在其中。
    • 使用 Thread 类创建线程对象,并将 Runnable 实现类的实例作为参数传入。
    特点:
    • 更灵活,可以实现多个接口(不受单继承限制)。
    • 适合需要共享资源的多线程场景。

    实现 Callable 接口

    实现方式:
    • 创建一个类实现 Callable 接口(位于 java.util.concurrent 包)。
    • 实现 Callablecall() 方法,将线程逻辑写在其中。
    • 使用 FutureTask 类包裹 Callable 对象,再用 Thread 启动。
    特点:
    • 可以返回执行结果或抛出异常。
    • 更适合需要有返回值的线程任务。

    4. 使用线程池(推荐方式)

    实现方式:
    • 使用 ExecutorService 接口创建线程池(如 Executors.newFixedThreadPool)。
    • 提交任务(RunnableCallable 对象)到线程池。
    特点:
    • 提高线程管理效率,避免频繁创建和销毁线程。
    • 更适合高并发场景。

    image-20241124100229673

  8. MySQL中的DQL,DCL,DML,DDL

    image-20241124100418909

  9. drop和truncate语句的区别

    image-20241124100633736

    image-20241124100643847

    image-20241124100652635

    image-20241124100701741

    image-20241124100710512

  10. 内连接和左连接的区别

    image-20241124100844353

  11. SpringMVC的执行流程

    流程总结

    1. DispatcherServlet 接收请求,调用 HandlerMapping 查找处理器。
    2. HandlerAdapter 适配处理器并执行控制器方法。
    3. 控制器方法返回数据(如 ModelAndView)。
    4. DispatcherServlet 调用 ViewResolver 解析视图,生成响应。
    5. 响应结果返回给客户端。
  12. 过滤器,拦截器,监听器的区别

    image-20241124101404145

  13. 说一下登录的流程

    1. 用户输入用户名和密码,提交到后端。
    2. 后端接收请求,验证用户输入。
      • 使用数据库检查用户名和密码。
      • 比对加密后的密码。
    3. 如果验证成功:
      • 返回会话或令牌。
      • 响应中包含登录成功的相关信息。
    4. 如果验证失败:
      • 返回错误信息。
    5. 前端根据响应:
      • 成功:存储状态(如令牌)并跳转页面。
      • 失败:提示用户重新输入。
  14. Linux的常见的几个命令

  15. 说一下树的前中后序遍历,图的深度和广度优先搜索

    image-20241124101705312

  16. 说一下快速排序

    快速排序是一种基于**分治法(Divide and Conquer)**的高效排序算法。它的核心思想是通过一次排序将数组分为两部分,其中一部分的所有元素都比另一部分的所有元素小,然后递归地对两部分分别进行快速排序。

    快速排序的基本步骤

    1. 选择基准值(Pivot)
      • 从数组中选择一个元素作为基准值。
      • 通常可以选择第一个元素、最后一个元素或随机选择一个元素。
    2. 分区操作(Partition)
      • 通过一轮排序将数组划分为两个子数组:
        • 左侧子数组:所有元素小于等于基准值。
        • 右侧子数组:所有元素大于基准值。
      • 基准值的位置最终确定。
    3. 递归排序
      • 对左子数组和右子数组递归调用快速排序,直到子数组长度为 0 或 1(此时已经有序)。
    4. 组合结果
      • 左子数组 + 基准值 + 右子数组形成排序后的数组。

    优点

    1. 平均时间复杂度较低,为 O(n log n)
    2. 原地排序,不需要额外的存储空间。
    3. 在实际工程中表现优良,常被视为快速排序的实际应用。

    缺点

    1. 最坏情况下,时间复杂度为 O(n^2)
    2. 递归调用可能导致栈溢出(对于极端数据,可使用尾递归优化)。
  17. 说一下RabbitMQ的组成,以及应用场景

    RabbitMQ 是一个开源的消息代理中间件,用于实现 消息的发送、接收、路由和存储,在分布式系统中具有广泛的应用。

    组成:

    producer

    exchange

    queue

    binding

    consumer

    connection和channel

    virtual host

    应用场景:

    异步处理

    发布-订阅模式

    分布式通信

    。。。

  18. 查询数据库第5行到第10行的数据

    SELECT *
    FROM table_name
    LIMIT 5 OFFSET 4;

2.Java比较常用的数据结构,在Java里面中的应用场景。

如果需要 随机访问,选择 ArrayList

如果需要 频繁插入和删除,选择 LinkedList

如果需要 无序但唯一,选择 HashSet

如果需要 有序且唯一,选择 TreeSet

如果需要 键值对存储,选择 HashMap

  1. hashmap 的时间复杂度和空间复杂度 ,详细说说。get(key)

    时间复杂度:

    增 put O(1) O(n)

    删 get O(1) O(n)

    改 remove O(1) O(n)

    查 O(n)

  2. hashmap 数组不够用扩容,hashmap数组扩容可以改进的地方。改进带来的好处。

    HashMap 的底层数据结构是一个数组,当存储的键值对数量超过容量(由负载因子 loadFactor 决定)时,会触发扩容。扩容虽然能解决数组不够用的问题,但存在性能开销。以下分析扩容机制、可改进的地方及改进带来的好处。

    HashMap 扩容存在的问题

    1. 性能开销大
      • 扩容时需要将所有键值对重新哈希,导致时间复杂度为 O(n),影响性能。
    2. 扩容次数多
      • 如果在短时间内大量插入数据,会频繁触发扩容,增加系统开销。
    3. 内存浪费
      • 默认负载因子为 0.75,扩容后数组往往会有部分桶为空,内存利用率降低。
    4. 线程安全问题
      • 在多线程环境下使用 HashMap 时,扩容可能引发数据丢失或死循环。

    提前估算容量

    延迟Rehash

    动态负载因子调整:快速增长,内存敏感

    增量式扩容

    改进哈希函数

    使用链表与红黑树混合优化

    改进带来的好处

    1. 性能优化
      • 减少扩容和重新哈希的开销,提高插入效率。
      • 避免扩容时的性能“卡顿”现象。
    2. 内存利用率提升
      • 动态调整负载因子或容量,避免过多的空桶,节省内存。
    3. 适应高并发场景
      • 平滑扩容操作可以避免多线程环境中的数据竞争。
    4. 提高用户体验
      • 系统的响应时间更平稳,避免因扩容导致的性能抖动。
  3. 红黑树大致介绍一下,平衡二叉树与红黑树的区别。

    红黑树是一种自平衡二叉查找树(Binary Search Tree, BST),通过颜色属性和调整规则保证在最坏情况下基本操作的时间复杂度为 O(log n)。红黑树广泛应用于许多计算机系统中,如 TreeMapTreeSet

    红黑树的性质

    1. 节点是红色或黑色
    2. 根节点始终是黑色
    3. 每个叶子节点(空节点)都是黑色的 NIL 节点
    4. 红色节点不能连续
      • 一个红色节点的子节点必须是黑色。
    5. 从任一节点到其每个叶子节点的路径都包含相同数量的黑色节点(即黑色高度一致)。

    image-20241124110932471

  4. mysql的索引索引(b+树),详细说说B+树、红黑树、平衡二叉树。

    image-20241124111258478

  5. spring的理解(ioc和aop),bean的生命周期,几种不同类型的生命周期详细说说区别,

    控制反转(Inversion of Control) 是一种设计思想,通过将对象的创建和依赖管理交由 Spring 容器完成,开发者只需关注业务逻辑。

    面向切面编程(Aspect-Oriented Programming) 通过定义切面,将与业务逻辑无关的公共功能(如日志、事务、权限校验)与主业务逻辑解耦。

    image-20241124111514849

  6. 自己尝试写一个ioc容器,分别有四种场景:每次请求来的时候创建,单例模式static创建、线程创建内,进程创建内,怎么用Java来实现这四种场景

    每次请求创建(Prototype)、单例模式(Singleton)、线程级别(ThreadLocal)、进程级别(全局单例)。

  7. 你怎么给小朋友解释ioc的概念

    假设小朋友每天都需要喝牛奶:

    • 不用 IOC:每天小朋友都要跑到超市买牛奶(主动获取依赖)。
    • 用 IOC:家长每天把牛奶送到小朋友手里(依赖注入,控制权反转)。
  8. 你有看过spring的源代码么,spring的设计模式

    image-20241124111721554

    Spring Boot 带来的好处
    1. 快速开发

      • 自动配置和内嵌服务器简化开发流程。
    2. 减少配置

      • 减少冗长的 XML 或 Java 配置。
    3. 一致性依赖

      • 通过 Spring Boot Starter 管理依赖版本,减少冲突。
    4. 开箱即用

      • 提供内置功能(如 Actuator、DevTools)提高开发效率。
  9. springboot和spring的区别,平常使用springboot给你最大的好处是什么,自己写过自定义注解么,自定义注解大概的流程详细说说

    自定义注解的步骤
    1. 创建注解类
      • 使用 @interface 定义注解。
      • 指定元注解(如 @Retention@Target)。
    2. 编写注解逻辑
      • 利用反射读取注解的属性和行为。
      • 在运行时、编译时或加载时实现自定义逻辑。
    3. 注册注解处理逻辑
      • 如果是运行时注解,在框架或工具类中解析并执行注解行为。
      • 如果是编译时注解,使用 Annotation Processor

2.说说你对面向对象和面向过程的理解

过程为中心,问题分解为若干步骤,逐步解决。

对象为中心,使用对象封装数据和行为,通过对象交互完成任务。

3.面向对象的特征(继承封装多态)

将对象的属性和行为隐藏起来,通过访问方法(getter/setter)暴露必要接口。

子类继承父类的属性和方法,形成父子关系。

对象可以以不同形式表现(编译时多态、运行时多态)。方法重载(编译时多态)。方法重写 + 父类引用指向子类对象(运行时多态)。

4.接口和抽象类的区别(接口制定规范、抽象类复用代码)

image-20241124124853680

5.Java的基本数据类型(8种)
int的取值范围(问我怎么推倒出来的取值范围)

6.int 的包装类 (integer区别和用法,拆箱和装箱)

Integer 的特点
  • 包装类,提供 int 的对象封装。
  • 包含静态常量 MAX_VALUEMIN_VALUE,表示取值范围。
  • 支持自动装箱与拆箱。
拆箱与装箱
  • 装箱int 转为 Integer
  • 拆箱Integer 转为 int

7.jvm对integer进行一个范围保存,能调整么(-128~127,不知道怎么调整这个范围)

范围-128127

  • 在此范围内的 Integer 对象会被缓存,重复使用。
  • JVM 内部维护一个 IntegerCache

调整方法:通过 JVM 参数 -XX:AutoBoxCacheMax=<value> 修改最大值。

8.Java线程池的一个工作原理(Java线程池的7大核心参数和4种拒绝策略),调整线程池的大小(创建线程池的时候使用构造函数指定线程池的大小和线程数量,具体让我说核心线程数和最大线程数,核心线程数+救急线程=最大线程数),

7.1 核心组件
  • 线程池的工作流程

    1. 提交任务。
    2. 若线程数未达到核心线程数(corePoolSize),则创建新线程。
    3. 若达到核心线程数,任务放入阻塞队列。
    4. 若阻塞队列已满且线程数小于最大线程数(maximumPoolSize),则创建救急线程。
    5. 若线程数达到最大线程数,任务被拒绝(触发拒绝策略)。

7.2 线程池的 7 大核心参数
  1. corePoolSize:核心线程数。
  2. maximumPoolSize:最大线程数。
  3. keepAliveTime:救急线程空闲时间,超过时间会被销毁。
  4. unitkeepAliveTime 的时间单位。
  5. workQueue:任务队列(阻塞队列)。
  6. threadFactory:线程工厂,创建线程时定义线程属性。
  7. handler:拒绝策略(当任务无法处理时的应对方法)。
7.3 线程池的 4 种拒绝策略
  1. AbortPolicy

    (默认):

    • 抛出 RejectedExecutionException 异常。
  2. CallerRunsPolicy

    • 由提交任务的线程直接执行任务。
  3. DiscardPolicy

    • 丢弃无法处理的任务。
  4. DiscardOldestPolicy

    • 丢弃队列中最旧的任务,执行新任务。

9.说说对apo的理解(面向切面编程,无侵入增强方法),说一说aop种的概念(切面、切点、通知。。。),具体说说怎么对类中的方法进行增强(通知和找到方法所在类的路径进行方法增强),说一下aop执行顺序(我大致说了一下spring中有过滤器链)

9.1 AOP 概念
  • 面向切面编程(Aspect-Oriented Programming) 是一种编程范式,用于动态增强目标对象的功能,达到无侵入的代码扩展。
  • 核心思想:将横切关注点(如日志、事务、权限校验)从业务逻辑中剥离,通过切面模块动态织入目标方法。
9.2 AOP 的核心概念
  1. 切面(Aspect)

    • 模块化的关注点定义,如日志记录、事务管理。
  2. 切点(Pointcut)

    • 定义在哪些位置织入增强逻辑。
    • 通过表达式(如 execution)定义匹配规则。
  3. 通知(Advice)

    • 切面的增强逻辑。

    • 类型

      • 前置通知(@Before):方法执行前增强。
      • 后置通知(@After):方法执行后增强。
      • 返回通知(@AfterReturning):方法正常返回后增强。
      • 异常通知(@AfterThrowing):方法抛出异常时增强。
      • 环绕通知(@Around):方法前后均可增强。
  4. 目标(Target)

    • 被增强的对象或方法。
  5. 织入(Weaving)

    • 将切面逻辑应用到目标对象的过程。
9.3 实现方法增强
  1. 配置切点

    • 使用 @Pointcut 定义方法匹配规则。
  2. 实现通知

    • 编写增强逻辑,并通过 @Before@Around 等注解应用到切点。
9.4 AOP 的执行顺序
  • Spring 中的 AOP 执行顺序

    • 前置通知 → 目标方法 → 返回/异常通知 → 后置通知。
    • 依赖 责任链模式 管理通知的执行顺序。

10.说说对jdk动态代理的理解(Java种有2种动态代理,jdk和cglib,说了一下使用场景,反射,aop,事务,jdbc连接数据库 class.forname)

10.1 动态代理的定义
  • 动态代理 是在运行时动态生成代理类,拦截目标对象的方法调用并添加增强逻辑。

  • Java 提供两种动态代理:

    1. JDK 动态代理

      • 基于 java.lang.reflect.Proxy,仅支持接口代理。
    2. CGLIB 动态代理

      • 使用子类继承目标类,支持类和接口代理。
10.2 使用场景
  • JDK 动态代理

    • 适合接口的代理,如日志记录、事务管理。
  • CGLIB 动态代理

    • 适合类代理,如增强方法执行逻辑。

11.mysql 动态sql 标签简单说说,#和 符号的区别,什么使用 符号的区别,什么使用 符号的区别,什么使用​​​​​​​​​​符号(不会)

  1. #(预编译,占位符)
    • SQL 中的参数使用占位符 ?
    • 防止 SQL 注入。
    • 用于大多数场景。
  2. $(字符串拼接)
    • 直接拼接 SQL,危险,易受 SQL 注入攻击。
    • 用于动态传递字段名或表名。

12.mysql列格式都有哪些(数值,时间datetime,文本varchar char text blog BigDecimal),

image-20241124125513924

13.说一下金额为什么要用BigDecimal 而不是 float和double (标度和数值,float和double近似值)

精度丢失

14.分析一条sql的执行计划(explain 关注 key type extra 这三个属性,并简单解释了这3个属性)

15.说一下你对微服务和boot的理解(多个单体组成微服务,微服务将功能更加细化,每一个功能做成一个服务,职责更加细化)

16.说说你对分布式的cap的理解(听不懂,不会)

Consistency(一致性)

  • 所有节点的数据一致。

Availability(可用性)

  • 服务始终可用。

Partition Tolerance(分区容错性)

  • 系统可容忍网络分区。

分布式系统不能同时满足 CAP,只能取其二。

常见组合:

  • CP:如 Zookeeper。
  • AP:如 Cassandra。

17.说说springcloud的常用组件(nacos,sentinel,gateway,openfeign)

Spring Cloud 常用组件

  1. Nacos:服务注册与发现。
  2. Sentinel:限流、熔断。
  3. Gateway:API 网关,路由和过滤。
  4. OpenFeign:服务间的声明式 HTTP 调用

18.分布式和集群的区别(集群 反向代理,分布式 gaetway网关)

image-20241124125634590

19.说说你项目中遇到的问题,并怎么解决的。

20.mvvm模型是否了解(简单说了下,双向绑定 )

image-20241124125655405

get post 区别?

image-20241124125855150

redis数据结构有哪些?(string list hash set zset hyperLogLog Bitmap)

Java实现线程安全的机制(synchronized ReentrantLock ReadWriteLock CAS)

synchronized 使用方法?(方法上 代码块)

synchronized 能用在属性上吗?(不能)

linux命令说说?(top ps -ef df free iostat ifstat vmstat)

如何部署的项目?

遇到问题怎么解决的?

说说常见的异常?

ConcurrentModificationException 如何出现?

用过哪些线程安全的集合(CopyOnWriteArrayList ConcurrentHashMap … )

空指针异常如何出现,怎么预防?(“abc”.equals(str) StringUtil.isBlank() )

用过哪些工具包?(HTMLUtil)

如何读取xml文件(忘了)

yml 和 properties的区别?

配置文件放在jar包外怎么弄?几种方法

SpringCloud的组件你知道哪些?

服务之间调用的方法你知道哪些?(Restful feign rpc MQ)

网络几层结构

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

redis

Redis(Remote Dictionary Server)是一种基于内存的高性能键值存储数据库,支持多种数据结构,并提供丰富的功能扩展,广泛应用于缓存、消息队列、实时分析等场景。

相关文章:

网新恒天八股总结

Java的基本数据类型 四类八种 整数类型&#xff1a;byte,short,int,long 浮点类型&#xff1a;float,double 字符类型&#xff1a;char 布尔类型&#xff1a;boolean char类型的范围 0 ~ 65535&#xff0c;可以表示16位无符号整数 equals和的区别 &&#xff0c;&&a…...

【AIGC】与模型对话:理解与预防ChatGPT中的常见误解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;模型的工作原理和用户期望差异人工智能模型的基本工作原理认知上的局限与误解用户期望与模型实际能力的差距精确理解用户意图的重要性实际应用中的建议 &…...

09篇--图片的水印添加(掩膜的运用)

如何添加水印&#xff1f; 添加水印其实可以理解为将一张图片中的某个物体或者图案提取出来&#xff0c;然后叠加到另一张图片上。具体的操作思想是通过将原始图片转换成灰度图&#xff0c;并进行二值化处理&#xff0c;去除背景部分&#xff0c;得到一个类似掩膜的图像。然后…...

Qt 使用modbus协议

Qt 框架下 使用modbus协议 一&#xff0c;使用Qt原生的 QModbusClient &#xff0c;比如QModbusTcpClient 1&#xff0c;因为modbus的读写 需要在同一个线程中&#xff0c;所以需要在主线程中利用moveToThread的方式&#xff0c;将业务逻辑封装到 子线程中。 2&#xff0c;m…...

pip离线安装一个github仓库

要使用pip安装一个本地Git仓库&#xff0c;你可以按照以下步骤操作&#xff1a; 确保你已经克隆了Git仓库到本地。 进入仓库所在的目录。 使用pip安装。 以下是具体的命令&#xff1a; 克隆Git仓库到本地&#xff08;替换下面的URL为你的仓库URL&#xff09; git clone https…...

【ETCD】【源码阅读】深入分析 storeTxnWrite.Put方法源码

该方法是 storeTxnWrite 类型中的核心方法&#xff0c;负责将键值对存储到数据库&#xff0c;同时处理键的元数据&#xff08;如版本、修订号、租约&#xff09;并管理租约关联。 目录 一、完整代码二、方法详解方法签名1. 计算修订号并初始化变量2. 检查键是否已存在3. 生成索…...

桥接模式的理解和实践

桥接模式&#xff08;Bridge Pattern&#xff09;&#xff0c;又称桥梁模式&#xff0c;是一种结构型设计模式。它的核心思想是将抽象部分与实现部分分离&#xff0c;使它们可以独立地进行变化&#xff0c;从而提高系统的灵活性和可扩展性。本文将详细介绍桥接模式的概念、原理…...

【Rust自学】3.2. 数据类型:标量类型

3.2.0. 写在正文之前 欢迎来到Rust自学的第三章&#xff0c;一共有6个小节&#xff0c;分别是: 变量与可变性数据类型&#xff1a;标量类型&#xff08;本文&#xff09;数据类型&#xff1a;复合类型函数和注释控制流&#xff1a;if else控制流&#xff1a;循环 通过第二章…...

【Leetcode Top 100】199. 二叉树的右视图

问题背景 给定一个二叉树的 根节点 r o o t root root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 数据约束 二叉树的节点个数的范围是 [ 0 , 100 ] [0,100] [0,100] − 100 ≤ N o d e . v a l ≤ 100…...

Java并发编程框架之其他并发工具

选错了就选错了&#xff0c;不要一遍一遍的后悔&#xff0c;总是一遍遍的想&#xff0c;当时怎么样就好了&#xff0c;不要欺负当时的自己&#xff0c;当时你一个人站在迷雾中&#xff0c;也很迷茫&#xff0c;就算重新来一遍&#xff0c;以你当时的阅历和心智&#xff0c;还是…...

MinerU:PDF文档提取工具

目录 docker一键启动本地配置下载模型权重文件demo.py使用命令行启动GPU使用情况 wget https://github.com/opendatalab/MinerU/raw/master/Dockerfile docker build -t mineru:latest .docker一键启动 有点问题&#xff0c;晚点更新 本地配置 就是在Python环境中配置依赖和…...

Unity性能优化---使用SpriteAtlas创建图集进行批次优化

在日常游戏开发中&#xff0c;UI是不可缺少的模块&#xff0c;而在UI中又使用着大量的图片&#xff0c;特别是2D游戏还有很多精灵图片存在&#xff0c;如果不加以处理&#xff0c;会导致很高的Batches&#xff0c;影响性能。 比如如下的例子&#xff1a; Batches是9&#xff0…...

wazuh-modules-sca-scan

sca模块主函数wm_sca_main -> wm_sca_start 检查policy文件中的每一个项目wm_sca_check_policy static int wm_sca_check_policy(const cJSON * const policy, const cJSON * const checks, OSHash *global_check_list) {if(!policy) {return 1;}const cJSON * const id c…...

力扣-图论-15【算法学习day.65】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非…...

JS萤石云录像回放拖动进度条无法正常播放

问题描述&#xff1a; 本项目版本&#xff1a;vue2.6.12&#xff0c;webpack3.6.0&#xff0c;ezuikit-js0.7.2 在使用萤石云的JavaScript SDK做监控的直播、录像回放时&#xff0c;遇到部分设备的录像回放&#xff0c;无法根据控制面板的拖动进度条查看某时间段的录像。 官方…...

Spring Boot 启动时间优化全攻略

引言 随着 Spring Boot 的广泛应用&#xff0c;开发者享受到了快速开发和自动化配置的便利。然而&#xff0c;随着项目复杂度的增加&#xff0c;Spring Boot 项目启动时间也变得越来越长&#xff0c;这在开发、调试和部署阶段可能会成为效率瓶颈。如何优化 Spring Boot 的启动…...

ubuntu服务器木马类挖矿程序排查、及安全管理总结

版本 24.04 由于GPU多卡服务器多人使用&#xff0c;需要链接隧道ssh等&#xff0c;容易中招挖矿脚本。 总的思路是&#xff0c;顺着进程的PID回溯最终的程序运行起点&#xff0c;这里可以先看一下日志&#xff1a; journalctl -u PID 通过 PID 精确定位进程的信息&#xff0c…...

redis 使用Lettuce 当redis挂掉重启之后 网络是怎么重新连接

Lettuce是一个高性能的Java Redis客户端&#xff0c;支持同步、异步和反应式编程模式 Lettuce的核心功能包括&#xff1a; ‌高性能‌&#xff1a;通过使用Netty作为底层网络通信框架&#xff0c;实现了非阻塞IO&#xff0c;提高了性能。‌丰富的API‌&#xff1a;提供了丰富…...

【PyTorch】实现在训练过程中自定义动态调整学习率

问题描述&#xff1a; 在使用 PyTorch 训练自定义神经网络时&#xff0c;我们希望能够动态地调整学习率&#xff0c;以便在训练过程中逐渐优化模型&#xff0c;避免过拟合并加速收敛。那么&#xff0c;如何在 PyTorch 中实现这一功能呢&#xff1f; 解决方案&#xff1a; 在训…...

【Flink-scala】DataStream编程模型总结

系列文章目录 1.【Flink-Scala】DataStream编程模型之数据源、数据转换、数据输出 2.【Flink-scala】DataStream编程模型之 窗口的划分-时间概念-窗口计算程序 3.【Flink-scala】DataStream编程模型之窗口计算-触发器-驱逐器 4.【Flink-scala】DataStream编程模型之水位线 5.【…...

语音芯片赋能可穿戴设备:开启个性化音频新体验

在科技日新月异的今天&#xff0c;语音芯片与可穿戴设备的携手合作&#xff0c;正引领我们步入一个前所未有的个性化音频时代。这一创新融合&#xff0c;用户可以享受到更加个性化、沉浸式的音频体验。下面将详细介绍语音芯片与可穿戴设备合作的优点和具体应用。 1. 定制化音效…...

JavaFX使用jfoenix的UI控件

jfoenix还是一个不错的样式&#xff0c;推荐使用&#xff0c;而且也可以支持scene builder中的拖拖拽拽 需要注意的是过高的javafx版本可能会使得某些样式或控件无法使用 比如alert控件&#xff0c;亲测javaFX 19版本可以正常使用 1.在pom.xml中引入依赖 GitHub地址https://gi…...

SpringBoot集成ENC对配置文件进行加密

在线MD5生成工具 配置文件加密&#xff0c;集成ENC 引入POM依赖 <!-- ENC配置文件加密 --><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>2.1.2</ver…...

基于AI对话生成剧情AVG游戏

游戏开发这个领域&#xff0c;一直有较高的学习门槛。作为一个非专业的游戏爱好者&#xff0c;如果想要开发游戏&#xff0c;往往受制于游戏引擎的专业程度&#xff0c;难以完成复杂的游戏项目。 AI IDE的诞生&#xff0c;提供了另外的一种思路&#xff0c;即通过AI 生成项目及…...

MAVEN--Maven的生命周期,pom.xml详解,Maven的高级特性(模块化、聚合、依赖管理)

目录 &#xff08;一&#xff09;Maven的生命周期 1.Maven的三套生命周期 2.Maven常用命令 &#xff08;二&#xff09;pom.xml详解 &#xff08;三&#xff09;Maven的高级特性&#xff08;模块化、聚合、依赖管理&#xff09; 1.Maven的依赖范围 2.版本维护 3.依赖传…...

SpringBoot的事务钩子函数

如果需要在A方法执行完成之后做一个不影响主方法运行的动作B&#xff0c;我们需要判断这个A方法是否存在事务&#xff0c;并且使用异步执行动作B&#xff1b; import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transa…...

uniapp滚动消息列表

两个相同的循环列表&#xff0c;循环滚动 <view class"winners_list uni-flex uni-column" :animation"animationData"><view v-for"(item, index) in winnersList" :key"index" class"li uni-flex uni-column"&g…...

基于python对pdf文件进行加密等操作

利用python对pdf文件进行操作 读取pdf-源码 import PyPDF2 # 读取pdf格式的文件 reader PyPDF2.PdfFileReader(示例文件/aaa.pdf) print(reader)# 读取指定页面的文件 page reader.getPage(0) # 输出当前页面的文本数据 print(page.extractText())读取pdf-源码解析 这段代…...

Three.js材质纹理扩散过渡

Three.js材质纹理扩散过渡 import * as THREE from "three"; import { ThreeHelper } from "/src/ThreeHelper"; import { LoadGLTF, MethodBaseSceneSet } from "/src/ThreeHelper/decorators"; import { MainScreen } from "/src/compone…...

【Leetcode 每日一题 - 扩展】45. 跳跃游戏 II

问题背景 给定一个长度为 n n n 的 0 0 0 索引 整数数组 n u m s nums nums。初始位置为 n u m s [ 0 ] nums[0] nums[0]。 每个元素 n u m s [ i ] nums[i] nums[i] 表示从索引 i i i 向前跳转的最大长度。换句话说&#xff0c;如果你在 n u m s [ i ] nums[i] nums[i…...

被裁20240927 --- YOLO 算法

背景 在云端部署ViSP&#xff0c;ViSP实现视觉伺服、yolo实现视觉跟踪。 开源的2d视觉跟踪算法有哪些&#xff1f; 开源的2D视觉跟踪算法有很多呢&#xff0c;这里给你推荐一些比较知名和常用的吧。 ByteTrackV2&#xff1a;这是一个通用2D跟踪算法&#xff0c;提出了分层的…...

AI技术架构:从基础设施到应用

人工智能&#xff08;AI&#xff09;的发展&#xff0c;正以前所未有的速度重塑我们的世界。了解AI技术架构&#xff0c;不仅能帮助我们看懂 AI 的底层逻辑&#xff0c;还能掌握其对各行业变革的潜力与方向。 一、基础设施层&#xff1a;AI 技术的坚实地基 基础设施层是 AI 技…...

植物大战僵尸辅助【控制台版本】

前面介绍了使用CE和OD的简单使用&#xff1a;CE和OD介绍和使用CE查找阳光的教学&#xff1a;阳光基地址和偏移地址&#xff0c;下面先使用最简单的控制台程序来实现修改阳光的功能。 项目地址 1.分析程序 我们的控制台程序想要修改植物大战僵尸游戏内的数据&#xff0c;它们…...

css中样式前加 css样式前面加个圆点

创建CSS样式,样式名称的前面需要加什么 1、我们只知道符号代表的意思是at&#xff0c;其翻译是 在... 例如media就是 在媒介上。没人规定本身具有什么意义&#xff0c;或者说就算规定了我们也改变不了&#xff0c;只需要知道其规定属性的用法即可。 2、px;}然后根据你自己索要…...

算法刷题Day18: BM41 输出二叉树的右视图

题目链接 描述 思路&#xff1a; 递归构造二叉树在Day15有讲到。复习一下&#xff0c;就是使用递归构建左右子树。将中序和前序一分为二。 接下来是找出每一层的最右边的节点&#xff0c;可以利用队列层次遍历。 利用队列长度记录当前层有多少个节点&#xff0c;每次从队列里…...

如何实现规范化LabVIEW编程

规范编写LabVIEW程序的目的是提高代码的可读性、可维护性、可扩展性&#xff0c;并确保团队成员能够高效地理解和修改代码。以下是一些关键建议&#xff0c;帮助您编写更专业的LabVIEW代码&#xff0c;并确保它易于后续的升级和维护&#xff1a; ​ 1. 合理的项目结构 目录结构…...

TQ15EG开发板教程:使用SSH登录petalinux

本例程在上一章“创建运行petalinux2019.1”基础上进行&#xff0c;本例程将实现使用SSH登录petalinux。 将上一章生成的BOOT.BIN与imag.ub文件放入到SD卡中启动。给开发板插入电源与串口&#xff0c;注意串口插入后会识别出两个串口号&#xff0c;都需要打开&#xff0c;查看串…...

Springboot+vue实现大文件上传

背景&#xff1a;为了实现大文件上传的功能 1新建数据表sql file_chunk CREATE TABLE file_chunk (id bigint UNSIGNED NOT NULL AUTO_INCREMENT,file_name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NULL DEFAULT NULL COMMENT 文件名,chunk_nu…...

Linux笔记

常用的基本命令 查询某个安装包有没有安装某个软件 使用的命令是rpm -qa |grep 软件名字 卸载软件 rpm -e --nodeps 软件名称 查看已经启动的服务 netstat -tunlp 一般我们在Linux系统中上传文件一般上传到 /usr/local/src的目录下 查看防火墙的命令 firewall-cmd --sta…...

相机(Camera)成像原理详解

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正。 成像流程 1、光学相机的定义 顾名思义&#xff0c;光学相机就是利用光学原理进行成像的相机&#xff0c;而且市面上的相机几乎都是光学相机&#xff0c;只不过随着时代的发展&#xff0c;胶卷式…...

计算机网络知识点全梳理(一.TCP/IP网络模型)

目录 TCP/IP网络模型概述 应用层 什么是应用层 应用层功能 应用层协议 传输层 什么是传输层 传输层功能 传输层协议 网络层 什么是网络层 网络层功能 网络层协议 数据链路层 什么是数据链路层 数据链路层功能 物理层 物理层的概念和功能 写在前面 本系列文…...

后端接受前端传递数组进行批量删除

问题描述&#xff1a;当我们需要做批量删除功能的时候&#xff0c;我们循环单次删除的接口也能进行批量删除&#xff0c;但要删除100条数据就要调用100次接口&#xff0c;或者执行100次sql&#xff0c;这样系统开销是比较大的&#xff0c;那么我们直接采用接收的数组格式数据sq…...

理解数据结构 hashtable的简易理解思路

结构图 为了方便演示&#xff0c;下图中分区算法为下标取模 private int hashFun(int id) {//使用 hash并取模return id % size;}Hashtable的结构如图所示&#xff1a;是一个数组&#xff08;元素为各个链表的表头&#xff09; 多个链表组成&#xff0c;也就是说 hashtable 结…...

大数据面试题--企业面试真题

大数据面试题--企业面试真题 PlanHub 点击访问获取&#xff1a; 大数据面试体系专栏_酷兜科技​www.kudoumh.top/hlwai/85.html 点击访问获取&#xff1a; 大数据面试体系专栏_酷兜科技​www.kudoumh.top/hlwai/85.html 大数据面试题汇总 HDFS 1、 HDFS 读写流程。 2、HDF…...

数据结构(C语言版)-6.查找

1. 查找的基本概念 2. 静态查找 2.1 顺序查找 typedef int KeyType; typedef int InfoType; typedef struct {KeyType key;InfoType otherdata; }SeqList; // 顺序表类型 // 顺序查找int SeqSearch(SeqList R[], int n, int k) {int i n;R[0].key k; // R[0].key为查找不成…...

RabbitMQ消息队列的笔记

Rabbit与Java相结合 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 在配置文件中编写关于rabbitmq的配置 rabbitmq:host: 192.168.190.132 /…...

linux不同发行版中的主要差异

一、初始化系统 Linux不同发行版中的系统初始化系统&#xff08;如 System V init、Upstart 或 systemd&#xff09; System V init&#xff1a; 历史&#xff1a;System V init 是最传统的 Linux 系统初始化系统&#xff0c;起源于 Unix System V 操作系统。运行级别&#xff…...

Elasticsearch+Kibana分布式存储引擎

1.ElaticSearch介绍 ElaticSearch &#xff0c;简称为 ES &#xff0c; ES 是一个开源的高扩展的分布式全文检索引擎&#xff0c;它可以近乎实时的存储、检 索数据&#xff1b;本身扩展性很好&#xff0c;可以扩展到上百台服务器&#xff0c;处理 PB 级别的数据。 ES 也使用 …...

spark 分布式 原理

Apache Spark 是一个快速且通用的大数据处理引擎&#xff0c;它支持分布式计算。Spark 的设计旨在通过高效的内存内计算和对多种数据源的支持来简化大规模数据集的处理。以下是关于 Spark 分布式原理的详细介绍&#xff1a; 1. 架构概述 Driver Program&#xff08;驱动程序&…...

Hadoop学习笔记(包括hadoop3.4.0集群安装)(黑马)

Hadoop学习笔记 0-前置章节-环境准备 0.1 环境介绍 配置环境&#xff1a;hadoop-3.4.0&#xff0c;jdk-8u171-linux-x64 0.2 VMware准备Linux虚拟机 0.2.1主机名、IP、SSH免密登录 1.配置固定IP地址&#xff08;root权限&#xff09; 开启master&#xff0c;修改主机名为…...