自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 机器学习与深度学习

2025-06-08 19:35:04 165

原创 开发好物推荐

以下代码定义了按下Win + F组合键时,会打开记事本程序。autohotkey这里的代表 Windows 键,F是字母 F 键,用于分隔热键和要执行的命令,Run是用于启动程序的命令。

2025-04-03 12:00:59 674

原创 java面试——一些面试(2)

响应时间过长和 TPS 过高本质上是系统资源分配与业务负载不匹配的表现。通过 ​。

2025-04-02 16:44:40 603

原创 Vue面试——组件封装、组件传参、响应式处理、关于v-for

Props父 → 子单向数据传递。

2025-04-02 16:33:12 570

原创 spring面试——JPA、常用标签、事务配置

掌握事务管理是编写高可靠性 Spring 应用的关键,合理使用事务传播行为和隔离级别,能有效避免数据不一致问题。:将日志记录、事务管理、安全校验等与业务逻辑无关的代码(横切关注点),从业务逻辑中剥离出来,集中管理。进一步简化了事务配置,通过自动配置和约定优于配置的原则,开发者只需少量注解即可启用事务。:适用于所有需要事务管理的业务逻辑,如订单支付、库存扣减等。通过代码显式控制事务边界,灵活性更高,但侵入性较强。:横切逻辑与业务逻辑分离,提升代码可读性和维护性。框架的关键,也是构建高内聚、低耦合应用的基石。

2025-04-02 16:27:09 568

原创 测试面试——测试文档编写、性能测试、软件测试分类

​。

2025-04-02 16:19:37 742

原创 mysql面试——批量处理、关联查询、回标、乐观锁悲观锁、数据字典

根据图片中的注解(、、)可知,用户已掌握基础配置能力。以下是结合 Spring Boot 的 ​批量操作实现方案,包含 ​JDBC 原生实现 和 ​MyBatis 集成实现 两种方式:properties复制spring.datasource.url=jdbc:mysql://localhost:3306/testdb?rewriteBatchedStatements=true&useSSL=falsespring.datasource.username=rootspri

2025-04-02 16:02:28 895

原创 RabbitMQ面试——延迟消息、应用场景、生产者和消费者、交换机

在消息队列中实现延迟消息(Delayed Message)的常见方法取决于具体的消息中间件。以下是几种主流消息队列(如 RabbitMQ、Kafka、RocketMQ)的延迟消息实现方案及详细步骤:RabbitMQ 本身不直接支持延迟消息,但可通过以下两种方式实现:python复制# 声明死信交换机(DLX).(='dlx_exchange',='direct')# 声明死信队列.(='dlx_queue',={&#39

2025-04-02 15:47:05 597

原创 mysql面试——事务、函数、锁、sql调优、存储过程、索引

1、MySQL事务的核心原理与实战指南事务是数据库保证数据一致性与完整性的核心机制,以下从​ACID特性隔离级别实现原理到​代码实战全面解析MySQL事务:​一、事务的ACID特性​Atomicity(原子性)事务要么全部完成,要么全部回滚,不可分割。​Consistency(一致性)事务前后数据库的完整性约束不被破坏(如主键唯一性)。​Isolation(隔离性)多个事务并发执行时互不干扰(通过锁和 MVCC 实现)。​Durability(持久性)

2025-04-02 15:21:29 894

原创 mysql面试——常见关系数据库,新兴数据库,数据库的选择

选择时需结合业务需求(如实时性、数据模型复杂度)和技术生态(如云服务兼容性)。近年来,随着数据规模、并发需求和技术场景的快速变化,传统数据库已无法满足所有需求,一批新兴数据库技术应运而生。使用 CDC 工具(如 Debezium)保证实时同步,或采用HTAP数据库(如 TiDB)。支持多源数据接入(如关系型、NoSQL、日志文件),统一建模为宽表或星型模型。面向联机分析处理(OLAP),优化多维分析(如 Cube、Roll-up)。:高效存储和查询时间序列数据(如传感器数据、日志)。

2025-04-02 12:36:16 567

原创 java面试——jvm类加载机制

双亲委派机制通过层次化的类加载策略,确保了类的唯一性和系统的安全性。然而,在需要动态加载、模块化隔离或特殊类加载需求的场景下,打破双亲委派机制成为必要的手段。通过自定义类加载器和合理设计类加载逻辑,可以灵活地满足这些特定需求,同时需注意避免因类加载器管理不当引发的类冲突和内存泄漏等问题。

2025-04-02 12:26:57 821

原创 java面试——I/O流,泛型

1.Java中的IO流详解Java的I/O)流用于处理数据的输入和输出,提供了灵活的数据读写方式。以下是Java IO流的核心分类、使用场景及代码示例:​一、IO流的分类​按数据流向​输入流:从数据源(文件、网络等)读取数据到程序。​输出流:将程序中的数据写入目标(文件、网络等)。​按处理数据单位​字节流:以字节(8位)为单位处理二进制数据(如图片、音频)。(输入)、(输出)​字符流:以字符(16位Unicode)为单位处理文本数据。

2025-04-02 12:00:12 900

原创 SpringCloud面试——核心组件、微服务拆分原则、微服务通信

它从 Eureka Client 获取服务注册表,得知服务的部署位置,然后使用如 Round Robin 轮询等算法,在每次请求时选择一台机器,将请求均匀分发到多个服务实例上,以提高系统的可用性和性能。当某个服务出现故障时,Hystix 能快速熔断,避免请求长时间等待,并可进行服务降级,返回兜底数据,保证系统的部分功能可用。:服务发现机制帮助微服务在运行时动态找到彼此,避免了服务间依赖关系的硬编码。:微服务是应用中最小的独立单元,各自负责特定或相关功能,比如电商系统中的用户服务、商品服务、订单服务等。

2025-04-02 10:13:48 364

原创 java面试——持久层框架ORM,mybati中#{},${}的区别

尽管存在性能损耗,但通过合理设计和优化(如预加载、批量操作),可在大多数场景中平衡效率与性能。字符串中,适用于动态表名、列名等无法使用预编译的场景。集成于 Django 框架,简单易用,适合快速开发。:仅在必要时使用(如动态表名),并确保参数来源可信。定义表之间的关联关系(如一对一、一对多、多对多)。微软官方 ORM,与 .NET 生态无缝集成。:数据库操作封装为对象方法,易于修改和扩展。JPA 标准实现,功能全面,企业级应用首选。标签和注解,可灵活构建复杂查询。支持多种数据库,灵活度高,适合复杂场景。

2025-04-02 09:44:44 348

原创 java面试——5种线程的核心实现方法

线程池允许的最大线程数,当任务队列满时,新任务会创建新线程直到达到此上限。:当任务无法被线程池处理时(如队列满且线程数达上限),执行的拒绝策略。直接传递队列,任务直接交给线程执行,不缓存任务,适合高吞吐量场景。有界队列,需指定容量,避免内存耗尽,适合需要严格限流的场景。无界队列(默认),可能导致内存溢出,适合任务量可控的场景。:线程池中始终保持存活的最小线程数,即使处于空闲状态。优先级队列,按任务优先级执行,需自定义任务比较逻辑。:用于创建新线程的工厂,可自定义线程名称、优先级等。

2025-04-02 09:40:55 437

原创 java面试——面试必问集合

基于堆结构实现,按元素优先级出队(默认是小顶堆)。保留插入顺序或访问顺序(可配置)。的实现类需根据场景选择:普通队列用。高频增删,低频查询或队列操作。)适合随机访问,增删慢。)适合频繁增删,查询慢。)适合排序和范围查询。:基于动态数组实现,:基于双向链表实现,快速去重、不关心顺序。

2025-04-02 09:29:48 205

原创 java面试——一些面试题(1)

请简述“cap理论”,基于此在设计分布式key-value缓存系统时,你建议如何选择,并说明理由?:CAP 理论指出,在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)这三个要素无法同时完全满足。一致性指所有节点在同一时间的数据完全一致;可用性指每个请求都能收到一个非错的响应,但不保证是最新的数据;分区容错性指系统在遇到网络分区(部分节点间通信故障)时,仍能继续对外提供服务。

2025-04-02 09:17:58 356

原创 开发经验——excel导出

根据数据量、性能要求和开发语言选择合适的工具和方案。文件是一项常见需求。掌握以上方法,可以灵活实现不同场景下的。:一次性加载所有数据到内存。Spring Boot 集成。分页查询数据库,逐行写入。在开发中,将数据导出为。浏览器端分块导出大数据。五、常见问题与解决方案。Python 数据分析。大数据量导出内存溢出。

2025-04-01 19:20:54 703

原创 mysql面试——主流连接池及德鲁伊连接池详解

合理配置和持续监控是发挥其优势的关键。,还有多种数据库连接池可供选择,每种连接池的设计目标、性能特点和适用场景各不相同。它不仅提供了高效的连接管理,还具备强大的监控、扩展和安全功能。提供全面的监控和安全功能,适合需要精细化管理的业务。:通过无锁设计和高效内存管理,性能远超其他连接池。是阿里巴巴开源的高性能数据库连接池,广泛应用于。:启用泄漏检测,检查代码是否未正确关闭连接。的集群模式,集中管理多个应用实例的连接池和。内置可视化监控页面,实时展示连接池状态、连接池通过高性能、强监控和安全性,成为。

2025-04-01 19:18:15 967

原创 java面试——讲一下常用的设计模式

​GoF 设计模式:23 种,分为创建型、结构型和行为型三大类。​其他设计模式:随着技术的发展,许多新的设计模式被提出,扩展了设计模式的范畴,以适应不同的开发需求和场景。理解并熟练应用这些设计模式,可以显著提高代码的可维护性、可复用性和灵活性,是每个软件开发人员必备的技能之一。设计模式通常分为三大类:​创建型模式结构型模式和 ​行为型模式。下面我们将详细介绍常用的设计模式。设计模式是软件开发中的最佳实践,不同的设计模式适用于不同的场景。

2025-04-01 17:43:00 1077

原创 Spring、Vue——生命周期

如果在 Bean 的配置中指定了初始化方法(如 XML 中通过init-method属性,注解中使用@PostConstruct注解 ),Spring 会调用该方法,让 Bean 在准备好接受请求之前进行必要设置或执行特定任务,比如资源的初始化、连接的建立等。

2025-04-01 17:19:41 698

原创 java、mysql、redis——数据类型

Java 的数据类型系统设计严谨,提供了丰富的数据表示方式,适用于各种编程需求。理解基本数据类型与引用数据类型的区别、数据类型转换规则以及常用包装类的使用,对于编写高效、可靠的 Java 程序至关重要。此外,合理选择合适的数据类型不仅能优化内存使用,还能提高程序的执行效率。Redis 提供了丰富的数据类型,适用于不同的应用场景。选择合适的数据类型可以显著提高数据存储和处理的效率。

2025-04-01 17:11:51 846

原创 redis面试——分布式锁、更新策略、集群操作

正常情况下能保证数据一致性,只有在极特殊的多线程并发场景下,如线程 1 查询时缓存失效,查询完数据准备写缓存时,线程 2 在这期间修改了数据并删除缓存,线程 1 才会用旧数据重建缓存,但这种情况发生概率较小。Redis 2.6.12 版本之后,SET 命令支持了多个选项,如 NX(等同于 SETNX)、EX(设置过期时间,单位为秒)、PX(设置过期时间,单位为毫秒)等,这些选项可以在一个命令中原子地完成设置键值和过期时间的操作,避免了 SETNX 方式的缺点。更新时先更新数据库,再删除或更新缓存。

2025-04-01 08:44:12 540

原创 redis面试——redis应用场景

Redis 作为一种高性能的内存数据库,凭借其丰富的数据结构、灵活的应用场景和强大的功能,已成为现代应用架构中不可或缺的一部分。通过合理的设计和优化,Redis 可以在缓存、消息队列、实时分析、分布式锁、会话管理等多个方面发挥重要作用,显著提升系统的性能、可扩展性和可靠性。

2025-04-01 08:44:01 2079

原创 redis面试——持久化以及实现方式

Redis 持久化是将内存中的数据保存到磁盘上,以防止数据丢失。Redis 提供了两种持久化方法:RDB(Redis Database Backup)和 AOF(Append Only File)。

2025-04-01 08:43:47 638

原创 redis面试——redis为什么是单线程的以及redis的内存优化

Redis 采用单线程模型主要是为了简化设计、减少上下文切换开销、保证操作的原子性、避免锁竞争,并通过高效的事件驱动机制实现高性能。尽管 Redis 的核心处理是单线程的,但通过多线程 I/O 和分布式架构等补充手段,Redis 依然能够满足高并发和大规模数据处理的需求。这种设计哲学使得 Redis 在性能、可靠性和易用性之间取得了良好的平衡。redis如何做内存优化Redis 是基于内存的数据库,内存优化对于提升其性能、降低成本都非常重要。

2025-04-01 08:43:36 733

原创 Springboot面试题——Spring的实现原理

加载配置文件:Spring Boot 在启动时,会按照一定的顺序加载配置文件,包括默认的 application.properties 或 application.yml 文件,以及根据不同环境加载的 application - {profile}.properties 或 application - {profile}.yml 文件。原理概述:Spring Boot 的自动配置是其核心特性之一,它基于类路径中的依赖、配置文件以及应用程序的上下文信息,自动为应用程序配置所需的 Bean。

2025-04-01 08:43:24 370

原创 SpringBoot面试——SpringBoot热部署

当代码发生改变时,IDE 自动编译生成新的类文件,Spring DevTools 会监测到这些变化,然后销毁重启类加载器,重新创建一个新的重启类加载器来加载新的类,从而实现类的热加载。当代码发生变化时,JRebel 会动态地将新的字节码注入到正在运行的 JVM 中,替换旧的类定义,从而实现热部署,无需重启应用程序。JRebel 是一款商业的 Java 热部署工具,它通过字节码增强技术,在运行时动态修改类的字节码,从而实现代码的热部署。激活 JRebel:安装完成后,需要激活 JRebel。

2025-04-01 08:43:13 435

原创 SpringCloud知识——微服务搭建

(如果本地有mysql了,将前面的3306该用别的端口,比如-p 3307:3306 (-p 宿主机端口:虚拟机端口)mysql -u账号 -p密码 --default-character-set=utf8。配置阿里云镜像(但是由于docker被禁,建议拉取镜像站里的镜像,如渡渡鸟镜像站)"text":"今天天气太好了,very good""text":"今天天气太好了,very good""text":"今天天气太好了,very good"-bash: /opt/jdk1.8.0: 是一个目录。

2025-04-01 08:42:51 491

原创 SpringBoot面试——注解、属性、支持的日志框架

Spring Boot 是基于 Spring 框架的快速开发框架,它提供了大量注解以简化开发流程,以下是一些常见的注解:核心注解。

2025-04-01 08:42:03 558

原创 mysql、redis——数据库和缓存的数据一致性

在应用系统中,数据库和缓存的组合使用较为常见,缓存可以显著提升系统的读取性能,但这也带来了数据一致性的问题。更新顺序问题:在对数据进行更新操作时,如果先更新数据库,再更新缓存,或者先更新缓存,再更新数据库,在并发场景下,可能会出现缓存和数据库数据不一致的情况。例如,在更新缓存失败时,数据库数据已更新,就会导致两者数据不一致。缓存失效问题:当缓存中的数据过期或被手动删除时,如果没有及时从数据库中获取最新数据更新缓存,就会导致缓存和数据库数据不一致。同时更新数据库和缓存:在更新数据时,同时更新数据库和缓存。

2025-04-01 08:41:53 606

原创 redis面试——分布式锁如何确保顺序一致性

每个客户端在尝试获取锁时,向数据库中插入一条记录,利用唯一索引的特性来保证只有一个客户端能够插入成功,从而获取到锁。同时,可以在数据库中记录每个请求的顺序信息。获取锁:每个客户端在尝试获取锁时,生成一个唯一的时间戳或序列号,并将其作为锁的一部分存储在 Redis 中。例如,可以维护一个全局的顺序列表,记录每个请求的时间戳或序列号,只有当当前请求的时间戳或序列号是列表中最小的时,才允许释放锁。判断顺序:可以根据数据库中记录的时间戳来判断请求的顺序,只有当当前请求的时间戳是最早的时,才允许执行临界区代码。

2025-04-01 08:40:40 372

原创 mysql面试——事务隔离级别以及事务隔离实现的锁机制

MySQL 的事务隔离级别和锁机制是确保数据一致性和并发性能的关键。理解不同隔离级别的特点及其背后的锁机制,有助于设计高效、可靠的数据库应用。通过合理选择隔离级别、优化锁的使用以及监控和解决锁竞争问题,可以显著提升数据库系统的性能和稳定性。

2025-03-31 15:52:52 964

原创 mysql面试——关于MVCC

如果当前数据版本的 DB_TRX_ID 小于 Read View 中最小的活跃事务 ID,或者该事务 ID 是当前事务自己的 ID,那么该数据版本对当前事务是可见的;Undo Log:用于记录数据的旧版本。OLTP(联机事务处理)系统:在 OLTP 系统中,通常有大量的并发读写操作,MVCC 可以显著提高系统的并发性能,减少事务之间的冲突,保证数据的一致性。一致性读:MVCC 提供了一致性读的功能,即事务在执行查询操作时,看到的数据是事务开始时的快照,不会受到其他事务并发修改的影响,保证了数据的一致性。

2025-03-31 15:48:32 328

原创 java知识——java开发的系统以及java网站架构

例如,许多热门的安卓游戏,像《王者荣耀》(部分代码)等就是用 Java 编写的,这些应用可以利用安卓设备的各种硬件功能,为用户提供丰富的移动体验。例如,SAP 公司的部分产品就是使用 Java 开发的。通过 Java 开发的 ERP 系统可以帮助企业实现资源的优化配置、业务流程的自动化和数据的集中管理,提高企业的运营效率和决策科学性。例如,在一些大型的 3D MMOG 游戏中,Java 可以用于构建游戏服务器,负责管理玩家的登录、角色数据存储、游戏世界状态更新等任务,为玩家提供稳定、流畅的游戏体验。

2025-03-31 15:46:45 633

原创 mysql面试——数据库表设计

数据库表设计是构建高效、可靠数据库系统的基础。通过遵循规范化原则、合理选择数据类型、优化索引策略、平衡规范化和反规范化,以及采用适当的工具和方法,可以设计出满足业务需求、具备良好性能和扩展性的数据库表结构。

2025-03-31 13:30:32 1228

原创 mysql面试——sql调优

SQL调优是提升数据库性能的重要手段,通过合理的索引设计、查询语句优化、数据库配置调整以及使用合适的工具进行监控和分析,可以显著提升SQL查询的执行效率,减少资源消耗,提高系统的整体性能和稳定性。然而,SQL调优是一个持续的过程,需要结合具体的业务场景、数据特点和数据库系统的特性,灵活运用各种优化方法,并通过持续的监控和调整,确保数据库系统的高效运行。SQL调优是一个复杂而多层面的过程,涉及SQL语句的编写、索引设计、数据库配置、硬件资源管理等多个方面。​理解业务需求。

2025-03-31 12:45:26 1962

原创 mysql面试——读写分离

​写操作(Write Operations)​:包括INSERTUPDATEDELETE等对数据进行修改的操作,这些操作通常在主库(Master)​上执行。​读操作(Read Operations)​:包括SELECT查询等读取数据的操作,这些操作可以在一个或多个从库(Slave)​上执行。通过这种方式,主库专注于处理数据变更,从库负责处理查询请求,从而分散负载,提高系统性能。

2025-03-31 12:42:34 2248

原创 mysql面试——分库分表

将数据按照一定的规则分布到多个数据库实例中。每个数据库实例称为一个“分片”(Shard),每个分片存储一部分数据。MySQL 分库分表是应对大规模数据和高并发访问的有效手段,但同时也带来了系统复杂性和维护成本的增加。在实际应用中,应根据业务需求、数据规模和技术团队的能力,合理选择分库分表的策略和工具,并注重数据一致性、查询优化和系统的可扩展性。通过科学的规划和设计,分库分表可以显著提升系统的性能和可用性,为业务的持续发展提供坚实的数据库基础。

2025-03-31 12:36:29 1145

原创 mysql面试——主从复制

MySQL 主从复制是一种强大且灵活的数据库复制技术,能够有效提升数据库的可用性、性能和可扩展性。通过合理的配置和管理,主从复制可以满足各种业务场景的需求。然而,也需要注意监控和维护,确保复制过程的稳定性和数据的一致性。如果需要更高级的功能或更好的性能,可以考虑使用 MySQL 的其他高可用解决方案,如 MySQL Group Replication、MySQL InnoDB Cluster 等。

2025-03-31 12:34:37 600

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除