自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis常见命令

Redis 的 Hash 类型是一种键值对集合,类似于一个小型的哈希表(字典),非常适合存储对象数据,如用户信息(id、name、age 等)。Redis 的 String 类型用来存储简单的字符串、数字、二进制数据等,每个 key 对应一个 value,最大可存储 512MB。Redis 的 ZSet 类型存储有序的集合,每个元素关联一个分数,常用于排行榜、权重排序等场景。Redis 的 Set 类型用于存储无序且不重复的元素集合,常用于去重或关系交集、并集等操作。

2025-03-08 14:54:53 697

原创 MySQL 的EXPLAIN 计划 type 字段详细说明

在 MySQL 的EXPLAIN执行计划中,type字段表示查询的访问类型,即 MySQL 在查询时使用的数据检索方法。不同的type值表示不同的查询效率,通常system是最优的,而ALL是最差的。以下是这些type。

2025-03-05 20:05:47 930

原创 计算机面试项目经历描述技巧

在计算机类岗位的面试中,项目经历是面试官评估候选人技术能力、问题解决能力和实战经验的核心环节。采用Lambda架构实现批流一体,Kafka做数据采集,Flink实时处理规则引擎,Redis存储黑名单,HBase存储用户行为画像。"分布式电商秒杀系统(日均百万级并发场景),基于SpringCloud的微服务架构设计,解决高并发场景下的库存超卖问题""担任核心开发,主导分布式锁模块设计与实现,确保在3000+QPS下库存扣减的原子性""通过引入布隆过滤器,减少80%的无效数据库查询,直接降低服务器成本15%"

2025-03-02 16:35:14 901

原创 Java 16进制 10进制 2进制数 相互的转换

十六进制 ↔ 十进制使用和。十六进制 ↔ 二进制使用和。十进制 ↔ 二进制使用和。对于大数字,使用BigInteger类来处理超过 32 位的进制转换。这种方法是高效的,并且通过 Java 内置的类,已经相对安全地处理了符号和溢出的问题。

2025-01-31 20:54:44 729

原创 16进制(十六进制)和二进制之间的转换

在16进制(十六进制)和二进制之间的转换,背后有一个非常重要的关系。为了理解为什么一个16进制数可以表示8位二进制数(即1个字节),我们需要先了解二进制和十六进制之间的关系。

2025-01-31 20:31:02 888

原创 Python 程序打包成 exe 文件

通过使用 PyInstaller,你可以轻松地将 Python 脚本打包成可执行的.exe文件。这样,你可以方便地将程序分发给没有 Python 环境的用户,或者直接运行在 Windows 上。

2024-12-12 14:38:44 1099

原创 CompletableFuture使用例子

/ 创建自定义线程池// 使用自定义线程池提交任务System.out.println("线程 ID: " + Thread.currentThread().getName());return 42;// 获取结果// 阻塞,等待结果System.out.println("结果: " + result);// 关闭线程池在这个例子中,我们使用创建了一个具有 3 个线程的固定线程池,并通过将作为参数传递给来确保任务在该线程池中执行。使用线程池:推荐使用或并传入自定义的线程池。

2024-11-14 22:09:30 455

原创 Java多线程底层设计思路

Java 的多线程设计比较全面和灵活,提供了多种方式来定义任务和管理线程,特别是通过Runnable和Callable接口,可以实现任务和线程的解耦,适应不同的应用场景。与 Python 和 C# 相比,Java 的多线程设计更注重细节和灵活性,但也相对复杂。在性能方面,Java 适合用于 CPU 密集型任务,而 Python 和 Go 则分别在 I/O 密集型任务和轻量级并发任务中更具优势。继承Thread类通过继承Thread类并重写run()方法来创建线程。实现Runnable接口通过实现。

2024-11-14 14:10:19 913

原创 面向对象的六大原则详细说明

这六大设计原则在面向对象编程中相辅相成,有助于提高代码的结构化、模块化和可扩展性。

2024-11-12 20:43:26 780

原创 Java8的新特性有哪些 举代码例子说明

Java 8 引入的这些特性极大地提高了开发的灵活性和代码的简洁性,同时也为函数式编程和异步编程提供了更强大的支持。

2024-11-12 20:20:45 422

原创 红黑树详细说明

红黑树是一棵每个节点都带有颜色属性的二叉搜索树,每个节点的颜色可以是红色或黑色。红黑树的性质确保了树的高度不会过高,从而限制了查找路径的长度。

2024-10-26 11:06:29 510

原创 B+树等树的定义和详细说明

B+树是一种,常用于数据库和文件系统的实现。相比于B树(Balanced Tree),B+树有更高效的磁盘读写性能,适合大规模数据的检索操作。

2024-10-26 11:04:45 741

原创 为什么会有树这样的数据结构,使用树有什么好处 和其他数据结构对比

树结构的独特设计能在不同层级间高效存储、查找和更新数据。与其他数据结构相比,树更适合处理动态数据和层级数据。平衡树的优化使得树在动态操作中的性能接近或优于哈希表,因此在数据库、文件系统等需要频繁数据访问和管理的系统中发挥着不可替代的作用。

2024-10-26 11:01:47 977

原创 聚簇索引和非聚簇索引B+树的关系

聚簇索引使用 B+ 树的叶子节点直接存储实际数据行,表中的数据按照聚簇索引列排序存储。非聚簇索引使用独立的 B+ 树,叶子节点存储索引值和指向数据行的指针。B+ 树本质是多路平衡树,聚簇索引和非聚簇索引都依赖 B+ 树的结构来提升查询效率。

2024-10-26 10:43:12 634

原创 mysql是如何使用 B+ 树的 B+ 树如何实现 举例说明

在 MySQL 中,B+ 树通过将数据分层、平衡存储的方式优化了查询性能。在users聚簇索引:B+ 树的叶子节点存储完整的数据行,顺序为user_id,主键查询可以直接返回数据。非聚簇索引:B+ 树叶子节点仅存储email和user_id的指针,通过指针实现查询非主键字段的二次查找。使用 B+ 树实现索引,能够让 MySQL 快速定位数据行,同时保持较低的树高度,减少磁盘 I/O 并提升查询效率。

2024-10-26 10:41:29 733

原创 B+树在mysql中如何代码实现,在磁盘中表现形式是

在 MySQL 中,B+ 树的实现不仅涉及内存中的数据结构,还包括如何将 B+ 树持久化到磁盘。在磁盘中,B+ 树是以页(page)为单位存储的,每一页对应数据库文件中的一个固定大小的数据块。以下是 B+ 树在 MySQL 中的具体实现和在磁盘中的表现。

2024-10-26 10:39:59 705

原创 如何理解Java线程池,举例子说明这些参数的作用

的核心参数通过灵活组合,可以精细控制线程池的行为和性能,适用于不同场景的并发任务需求。

2024-10-15 11:42:19 681

原创 如何理解Java垃圾回收机制

Java 的垃圾回收机制主要处理的是堆内存中的对象,尤其是那些不再被引用的对象。Java 采用分代收集的方式,堆内存分为新生代和老年代,根据对象的生命周期和存活率选择不同的垃圾收集算法。新生代主要通过 Minor GC 回收存活时间短的对象,老年代则通过 Major GC 或 Full GC 回收长存活的对象。通过自动的垃圾回收机制,Java 减少了开发者管理内存的负担,同时提高了内存使用的效率。

2024-10-15 11:09:49 603

原创 如何理解java虚拟机的组成和作用

Java 虚拟机(JVM)是 Java 程序执行的核心,负责字节码的加载、内存管理、垃圾回收和线程调度等功能。它的组成包括类加载器、运行时数据区、执行引擎和本地接口等部分。通过 JVM,Java 实现了跨平台、自动内存管理和高效执行,成为一种强大的编程语言平台。

2024-10-15 10:59:42 769

原创 Spring源码分析推荐书籍

学习Spring和Spring Boot源码分析时,推荐一些专门深入剖析源码的书籍。这类书籍不仅能帮助你了解Spring和Spring Boot的基本原理,还会带你深入框架的设计理念和实现细节。通过阅读这些书籍,你将对Spring和Spring Boot的源码有更深入的理解,并能够更好地掌握这些框架的核心原理和设计思想。

2024-09-23 10:31:22 845

原创 学习UE4书籍推荐

这些书籍涵盖了从基础到进阶以及性能优化的各个方面,你可以根据自己的知识水平和学习目标选择合适的书籍。

2024-09-23 09:50:02 900

原创 个人游戏游戏引擎推荐

对于个人游戏开发者,选择合适的游戏引擎非常关键。

2024-09-23 09:46:55 3209

原创 Java多线程书籍推荐

这些书籍涵盖了从基础到进阶以及性能优化的各个方面,你可以根据自己的知识水平和学习目标选择合适的书籍。

2024-09-23 09:34:32 642

原创 学习go语言-书籍推荐

这些书籍从基础到高级都涵盖了不同阶段的需求,可以根据你的学习阶段和目标选择合适的书籍。

2024-09-23 09:29:26 713

原创 Java 反射(Reflection)与注解(Annotation)的结合

获取类或方法的注解通过反射,使用判断是否存在特定注解,使用获取注解对象。注解中的属性值注解可以定义属性值(如value()),通过反射可以获取这些属性值,并基于此执行不同的逻辑。运行时处理反射结合注解主要用于框架开发,允许在运行时动态扫描注解并执行相应逻辑,例如自动注入依赖、事务管理、拦截器等。

2024-09-20 16:05:47 1083

原创 什么是Java注解 如何使用Java注解,Java注解有什么好处(ChatGpt生成)

可以通过。

2024-09-20 15:58:47 1041

原创 Java反射实际应用-Spring框架使用了java 反射实现什么重要功能(chatgpt4生成)

Spring Boot 通过反射实现了许多核心功能,主要包括依赖注入、注解处理、AOP 拦截、自动配置、Web 请求处理、Bean 生命周期管理等。反射使得 Spring Boot 能够在运行时动态扫描类、处理注解、创建对象和调用方法,从而极大提高了框架的灵活性和扩展性。

2024-09-20 15:29:11 1160

原创 什么是 java 序列化,如何实现 java 序列化(ChatGPT3生成)

Java 序列化(Serialization)是指将一个 Java 对象转换为字节流的过程,以便将其存储到文件、数据库或者通过网络进行传输。反序列化(Deserialization)是指将字节流重新转换为 Java 对象的过程。序列化的主要目的是为了保存对象的状态或实现对象的远程传输。

2024-09-19 15:03:21 283 1

原创 谈谈你Java对反射的理解(ChatGPT3生成)

Java中的反射(Reflection)是指在运行时获取类的结构、属性、方法等信息,并且可以对这些信息进行操作的一种机制。反射提供了动态操作的能力,可以在运行时检查类、接口、变量和方法,以及创建对象、调用方法和修改属性。

2024-09-19 15:00:38 440

原创 如何理解java HashMap底层源码(ChatGPT3生成)

HashMap通过数组、链表、红黑树相结合的方式实现快速的查找、插入和删除操作。它主要依赖哈希函数来确定存储位置,并通过链表和红黑树来解决哈希冲突。了解其底层实现有助于我们在实际开发中更好地使用它,避免一些潜在问题,如哈希冲突过多导致的性能下降。

2024-09-19 14:55:58 525

转载 win10关闭自动更新方法?这几种方法可以尝试

通过“运行”窗口输入“gpedit.msc”来打开组策略编辑器,然后依次导航到“电脑配置”、“管理模板”、“Windows组件”和“Windows更新”。在Windows更新设置中,你可以点击“高级设置”,在这里,你可以选择关闭自动更新或选择“暂停更新”。尤其是在工作或者急需使用电脑的时候,突如其来的系统更新往往会打断我们的工作节奏,甚至导致电脑卡顿、性能下降,严重影响用户的使用体验。具体来说,就是将“Start”的“数值数据”修改为“4”,并修改“FailureActions”中的相关数值。

2024-05-11 19:37:31 161 1

原创 Seata-Server配置文件详解

seata-server 配置文件详解registry.conf 有registry{} 和 config {} 两个配置registry{} 配置 server的注册中心,配置zk为注册中心时,server注册的节点为 /registry/default/config {} 配置server的配置中心,一般默认的file。file配置的文件为file.conf file.conf主要配置项是配置存储方式有db,redis,文件存储config {} 也可以配置为其他的配置中心,如zk和apo

2022-05-09 09:15:52 1806

原创 ClassNotFoundException: com.alibaba.spring.beans.factory.annotation.AnnotationInjectedBeanPostProces

最近在搞seata相关的项目。在跑官方seata-dubbo的官方demo时启动服务老是报标题这个错,上网搜总是说引入下面的依赖就可以了 <dependency> <groupId>com.alibaba.spring</groupId> <artifactId>spring-context-support</artifactId> <version>1.

2022-05-07 16:50:35 1653 1

原创 一张图说明CAS协议原理

1名词解释Single Sign On,SSO: 单点登录,通过一对ID和密码实现不同系统的无缝登录功能,可以将用户管理中心化,避免每个系统都需要一套单独的账户配置和用户管理实现。目前广泛应用了LDAP和CAS协议。LightweightDirectory Access Protocol, LDAP: 轻量目录访问协议,一种支持TCP/IP协议的目录结构协议,常用来统一存储和查询企业员工信息、公用证书等信息,可视为一种特殊的数据库。CAS Server:CASServer 负责完成对用户的认证工

2022-01-11 14:04:28 5158 3

原创 CAS Server 5.3 demo搭建

1项目下载地址:下载5.3版本的 cas-overlay ,用idea打开 。然后打开idea 自带的命令行工具Terminal 。window系统,初次运行命令可以是 build.cmd help 然后根据提示 执行命令 build.cmd copy build.cmd gencert build.cmd run gencert 是项目自带的生成证书的命令 ,这个以后配置Cilent会用到。2执行了 build.cmd run 之后 ,在项目目录下的target文件中,找到cas/WEB-

2022-01-11 13:56:25 275

空空如也

空空如也

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

TA关注的人

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