自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【计算机组成原理 | 第三篇】各个硬件的组成部分

在前面的文章中,我们介绍了计算机架构的基本组成。可以知道计算机的基本架构由“存储器”,“运算器”,“控制器”,“输入设备”,“输出设备”这五部分组成。在这片文章中,我们来深入的了解一下“存储器”,“运算器”和“控制器”的基本组成。

2024-07-11 19:19:46 498 1

原创 【计算机组成原理 | 第二篇】计算机硬件架构的发展

在当今数字化时代,计算机硬件不仅是技术进步的见证者,更是推动这一进步的基石。它们构成了我们日常生活中不可或缺的数字生态系统的核心,从简单的个人计算任务到复杂的数据分析和人工智能应用,硬件的性能和可靠性直接影响着我们的工作效率和生活质量。然而,无论计算机技术如何演变,其基本组成元素始终保持不变,它们是构建现代计算机的基石。本文旨在深入探讨计算机硬件的基本组成,揭示这些组件如何协同工作,支撑起整个计算机系统的运行。

2024-07-11 18:29:30 763 2

原创 【计算机组成原理 | 第一篇】计算机硬件的发展

计算机的发展是一个不断进步和创新的过程,从硬件的逻辑元件到软件的编程语言和用户界面,都经历了显著的变革。这些变革不仅提高了计算机的性能,也极大地扩展了它们的应用范围,使计算机成为现代社会不可或缺的工具。如果我的内容对你有帮助,请。创作不易,大家的支持就是我坚持下去的动力!

2024-07-11 16:49:57 826 1

原创 【从零开始学习RabbitMQ | 第三篇】什么是延迟消息

在现代软件开发中,异步消息处理已成为构建可扩展、高可用系统的关键组成部分。RabbitMQ,作为一款广泛使用的开源消息代理,提供了强大的消息队列功能,支持多种消息模式,包括发布/订阅、请求/响应以及路由等。然而,除了这些基本功能外,RabbitMQ还提供了一项独特的特性——延迟消息,它允许开发者安排消息在将来的某个时间点被处理。延迟消息,顾名思义,是指那些在发送后不会立即被消费者接收的消息,而是根据预设的延迟时间后才能被消费。

2024-05-28 20:50:31 1710 5

原创 【从零开始学习RabbitMQ | 第二篇】如何确保MQ的可靠性和消费者可靠性

在上一篇文章中,我们介绍了如何确保生产者的可靠性,确保消息一定可以到达MQ。但是MQ自己也是会丢失消息的,比如MQ的突然宕机或者消息过多造成的阻塞,因此我们这篇文章来介绍一下

2024-05-28 20:02:08 1463 1

原创 【从零开始学习RabbitMQ | 第一篇】如何确保生产者的可靠性

RabbitMQ作为业界广泛使用的消息队列之一,以其高可靠性、易用性和灵活性而受到开发者的青睐。然而,即便拥有如此强大的工具,确保生产者在发送消息时的可靠性仍然是一个挑战。

2024-05-28 12:10:56 1062 2

原创 【从零开始学习Redis | 第十一篇】快速介绍Redis持久化策略

Redis 作为一种快速、高效的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景。然而,由于其特性是基于内存的,一旦服务器进程退出,内存中的数据就会丢失。为了解决这一问题,Redis 提供了持久化功能,可以将内存中的数据保存到硬盘上,以便在服务器重启时恢复数据。持久化是 Redis 的关键特性之一,对于确保数据的安全性和可靠性至关重要。本文将深入探讨 Redis 的持久化策略,包括常用的持久化方式以及各自的优缺点。

2024-05-14 21:42:48 1089 3

原创 【知识点随笔分享 | 第十篇】快速介绍一致性Hash算法

在分布式系统中,数据的分布和负载均衡是至关重要的问题。一致性哈希算法是一种解决这些挑战的有效工具,它在分布式存储、负载均衡和缓存系统等领域得到了广泛应用。随着互联网规模的不断扩大,传统的哈希算法在面对大规模数据时往往会遇到性能瓶颈和负载不均衡的问题。一致性哈希算法的出现填补了这一空白,它能够将数据分布到不同的节点上,同时保证在节点的增减时最小化数据迁移,从而提高了系统的可扩展性和稳定性。无论是传统的Hash算法还是一致性Hash算法,解决的都是分布式缓存下多节点之间 的问题。

2024-05-07 23:46:05 1008 2

原创 【从零开始学习Minio | 第一篇】快速介绍什么是Minio

MinIO 是一个开源的对象存储服务器,旨在提供高性能、可扩展、持久性的存储解决方案。它允许用户通过简单的 HTTP/REST API 来存储和检索任意类型的数据,例如图片、视频、文档等。

2024-05-07 21:57:09 1361 1

原创 【Easy云盘 | 完结撒花】用户分享模块以及部分优化

收获很多,写到这里其实这个项目就写完了。我后续会加深对这个项目的理解,把他作为我暑假找实习的时候的主力项目。

2024-05-01 23:00:19 905 5

原创 【Easy云盘 | 第七天】文件的下载 以及 删除和还原文件

在哔哩哔哩闲逛看到这个项目,感觉还不错,于是想要学习一下这个项目怎么写。项目日记也会同步更新。(本人不分享本项目源码,支持项目付费)

2024-04-30 00:24:10 451 1

原创 【Easy云盘 | 第六天】文件移动和文件重命名

预计最迟五一假期结束之前写完这个项目,文件移动那块的逻辑太复杂了。写代码的时候差点累死我。这个项目写完之后要好好复习这个项目。

2024-04-29 00:09:43 501 2

原创 【从零开始学习IO机制 | 第一篇】I/O的演进之路

自诞生以来,Java 一直是软件开发领域的重要一环。作为一种广泛应用于各种应用程序和系统的编程语言,Java 一直致力于提供高效、可靠的 I/O(输入/输出)操作,以满足不断增长的软件需求和用户期望。Java I/O(Input/Output)是 Java 编程中至关重要的一部分,负责处理与外部世界的数据交换。从最早的基于流的处理方式到后来的 NIO(New I/O)和 NIO.2,Java I/O 在过去几十年间经历了令人瞩目的演进和创新。

2024-04-23 19:42:34 1029 4

原创 【Easy云盘 | 第五天】完善分片上传逻辑以及预览文件

这个项目的核心其实就写完了:后端处理文件的分片上传和分片文件合并。以及文件的预览功能。这个项目引入了ffmpeg来实现对视频文件的处理。后续如果时间的话,会考虑写一下限速下载功能。但主要还是要先更完回收站功能分享功能这个项目涉及到了大量的IO,所以我在后续要学习一下NIO, 尝试改造这个项目。

2024-04-23 18:30:53 669 7

原创 【Easy云盘 | 第四天】创建表结构以及实现文件的分片上传

本项目非原创,我也只是作为一名初学者跟着成熟的up主一起敲代码而已。今日实现了文件的分片上传

2024-04-18 00:11:57 961 20

原创 【MySQL数据库|第二十七篇】数据库信息加密下的模糊查询问题

数据库作为存储用户信息的地方,如何保护好数据库的安全性一直都是开发者所追求的终极目标。目前最常见的数据库加密方法就是:拒绝明文存储信息。比如我们可以存储加密后的信息,把解密放到代码逻辑中去做。但是这种存储加密信息的方式也会存在问题。

2024-04-13 19:39:28 1398 1

原创 【MySQL数据库 | 第二十六篇】InnoDB基本数据存储单元以及存在问题

总的来说,InnoDB存储引擎是MySQL中最常用的存储引擎之一,它采用了行级锁和多版本并发控制等先进的技术,为用户提供了可靠的事务支持和高性能的数据存储功能。文章介绍了InnoDB的基本数据存储单元——数据页,以及页合并和页分裂等常见操作。然而,尽管InnoDB在许多方面都表现出色,但仍然存在一些问题需要注意。

2024-04-11 09:19:52 850 3

原创 【MySQL数据库 | 第二十五篇】深入探讨MVCC底层原理

在本文中,我们将深入探讨MVCC的概念、原理和实现方式,特别关注MySQL中MVCC的实现。我们将探讨MVCC是如何克服传统数据库锁定机制的局限性,从而实现更高的并发性和更好的数据一致性。

2024-04-10 22:35:07 1792 1

原创 【MySQL数据库 | 第二十四篇】Limit语句的性能问题和调优策略

MySQL作为最流行的关系型数据库管理系统之一,被广泛应用于各种规模和类型的应用程序中。其强大的功能和灵活的查询语言使得开发人员能够高效地执行各种数据操作和分析。然而,在处理大量数据或复杂查询时,一些开发人员可能会遇到性能问题,其中一个常见的问题就是与LIMIT子句相关的性能问题。

2024-04-10 19:53:48 1479

原创 【MySQL数据库 | 第二十三篇】什么是索引覆盖和索引下推

在数据库查询优化领域,索引一直被视为关键的工具,用于提高查询性能并加速数据检索过程。然而,随着数据库技术的不断发展,出现了一些新的优化技术,其中包括索引下推(Index Pushdown)和索引覆盖(Index Covering)。这两种技术在提高查询性能和降低系统负载方面发挥了重要作用,并且已经成为了现代数据库系统中不可或缺的一部分。

2024-04-08 18:49:13 2592 6

原创 【从零开始学习Redis | 第九篇】深入了解Redis数据类型

在现代软件开发中,数据存储和处理是至关重要的一环。为了高效地管理数据,并实现快速的读写操作,各种数据库技术应运而生。其中,Redis作为一种高性能的内存数据库,广泛应用于缓存、会话存储、消息队列等场景。要深入了解Redis的工作原理,就必须先了解其底层数据结构。Redis之所以能够在性能上表现出色,部分原因在于其精心设计的数据结构。这些数据结构不仅简单高效,而且能够满足各种复杂的数据处理需求。

2024-04-05 23:56:08 772 1

原创 【MySQL数据库 | 第二十二篇】深入了解MySQL锁

MySQL作为世界上最流行的关系型数据库管理系统之一,广泛应用于各种规模和类型的应用程序中。在处理高并发和大规模数据操作时,确保数据的一致性和完整性是至关重要的。而MySQL的锁机制正是在这样的背景下发挥着重要作用。

2024-04-05 21:54:47 925 1

原创 【从零开始学习Redis | 第八篇】认识Redis底层数据结构(下)

在现代软件开发中,数据存储和处理是至关重要的一环。为了高效地管理数据,并实现快速的读写操作,各种数据库技术应运而生。其中,Redis作为一种高性能的内存数据库,广泛应用于缓存、会话存储、消息队列等场景。要深入了解Redis的工作原理,就必须先了解其底层数据结构。Redis之所以能够在性能上表现出色,部分原因在于其精心设计的数据结构。这些数据结构不仅简单高效,而且能够满足各种复杂的数据处理需求。本文将深入探讨Redis底层数据结构的设计原理,包括字符串哈希列表集合有序集合。

2024-03-27 02:31:52 1043 6

原创 【从零开始学习Redis | 第七篇】认识Redis底层数据结构(上)

在现代软件开发中,数据存储和处理是至关重要的一环。为了高效地管理数据,并实现快速的读写操作,各种数据库技术应运而生。其中,Redis作为一种高性能的内存数据库,广泛应用于缓存、会话存储、消息队列等场景。要深入了解Redis的工作原理,就必须先了解其底层数据结构。Redis之所以能够在性能上表现出色,部分原因在于其精心设计的数据结构。这些数据结构不仅简单高效,而且能够满足各种复杂的数据处理需求。本文将深入探讨Redis底层数据结构的设计原理,包括字符串哈希列表集合有序集合。

2024-03-24 22:22:50 1128 3

原创 【Easy云盘 | 第三天】完成用户系列接口

用户头像存到本地感觉不太好,但是舍不得用阿里云OSS,属于是被贫困击倒了

2024-03-21 22:51:15 704 4

原创 【Easy云盘 | 第二天】注册AOP切面完成参数校验

今日收获:看代码不要急躁,不要急躁,不要急躁

2024-03-20 00:23:36 690 7

原创 【Easy云盘 | 第一天】实现图形验证码以及邮箱验证码

跟课学习如何设计仿百度云盘第一天。

2024-03-18 23:52:26 1189 1

原创 【从零开始学习数据结构 | 第一篇】树

当谈论数据结构时,树(Tree)是一种极为重要且常用的数据结构之一。树的概念源自现实生活中的树木,它具有分层结构,由节点(Node)和边(Edge)组成,形成了一种类似于自然界树木生长的结构。在计算机科学领域,树被广泛运用于各种算法和数据存储场景中,如文件系统、数据库索引、编译器等。

2024-03-17 23:43:27 991 2

原创 【从零开始学习重要知识点 | 第一篇】快速了解什么是幂等性以及常见解决方案

幂等性简单来讲:对于同一操作,不论执行多少次,产生的影响都是相同的。换一种方式也可以描述为:对于相同的输入,无论进行多少次重复操作,都应该保持其结果一致。

2024-02-27 23:06:53 1501 67

原创 【牛牛送书 | 第四期】《高效使用Redis:一书学透数据存储与高可用集群》带你快速学习使用Redis

当今互联网技术日新月异,随着数据量的爆炸式增长,如何高效地存储和管理数据成为了每个公司都必须面对的挑战。与此同时,用户对于应用程序的响应速度和稳定性要求也越来越高。在这个背景下,Redis 作为一个高效、稳定、易用的内存数据库应运而生。Redis 具有数据结构丰富、读写速度快、支持事务、发布订阅等诸多优点,使得它在缓存、会话存储、消息队列等场景中得到了广泛应用。尤其是在大规模分布式系统中,Redis 可以作为一个高速的分布式缓存,帮助提升应用程序的响应速度和吞吐量,从而提升用户体验和公司业务价值。

2024-02-24 07:38:24 1790 72

原创 【从零开始学习Java重要知识 | 第三篇】暴打ReentrantLock底层源码

在并发编程中,线程安全是一个重要的问题。为了保证多个线程之间的互斥访问和正确的同步操作,Java提供了一种强大的锁机制——ReentrantLock(可重入锁)。与synchronized相比,ReentrantLock提供了更加灵活和强大的功能。它支持公平锁和非公平锁两种模式,可以通过lock()和unlock()方法手动控制锁的获取和释放,并且可以实现可重入特性,即同一个线程可以多次获得同一个锁而不会发生死锁。

2024-01-19 23:05:04 1367 17

原创 【从零开始学习Redis | 第十篇】利用Redis构造全局唯一ID(含其他构造方法)

在各种实际业务中,全局唯一ID是一个重要的存在,它用来标识用户的特定服务,方便用户在后续基于这个ID来进行各种服务。而如何构造全局唯一ID也是一个比较重要的知识点。因此今天来介绍一下如何基于Redis构造全局唯一ID。全局唯一ID(Global Unique Identifier,简称GUID)是在计算机系统中用于唯一标识实体或对象的标识符。它通常由一个128位的数字字符串组成,采用特定的算法生成,以确保在相同的算法和生成器设置下几乎不会重复。

2024-01-18 20:06:11 2289 45

原创 【从零开始学习Java重要知识 | 第二篇】深入解读ThreadLocal类

当我们编写多线程程序时,经常会遇到一些需要在线程之间共享数据的情况。然而,共享数据可能会引发线程安全的问题,例如竞态条件(race condition)和数据覆盖等。为了解决这些问题,Java 提供了许多线程同步的机制,如 synchronized 关键字和 Lock 接口等。然而,并不是所有的场景都适合使用传统的线程同步方式。有些情况下,我们更希望每个线程都拥有自己独立的数据副本,以避免线程之间的干扰。这时,ThreadLocal 就成为了一个非常有用的工具。

2024-01-13 22:28:04 1571 67

原创 【从零开始学习微服务 | 第一篇】什么是微服务

在当今快速发展的软件开发领域,构建大型应用程序已经成为一项巨大的挑战。传统的单体应用架构往往难以满足快速变化的业务需求和不断增长的用户规模。这就引出了微服务架构:一种以服务为中心的解决方案,旨在解决这些问题并提供更灵活、可扩展的应用程序设计。

2024-01-10 16:31:57 2641 87

原创 【知识点随笔分享 | 第九篇】常见的限流算法

当今互联网时代,随着网络流量的快速增长和系统负载的不断加重,限流算法作为一种重要的网络管理工具变得愈发重要。限流算法通过控制系统的输入和输出流量,有效地保护系统不受过载的影响,确保系统能够稳定可靠地运行。本文将介绍几种常见的限流算法及其应用场景,旨在帮助读者更好地理解限流算法的原理和实际应用,从而为网络性能优化提供有力支持。限流算法的研究和应用对于保障网络安全、提升系统稳定性具有重要意义,在当前信息化社会具有广泛的应用前景。

2023-12-25 22:29:42 2122 77

原创 【从零开始学习JVM | 第九篇】了解 常见垃圾回收器

手动管理内存往往容易出现错误,例如忘记释放已经不再使用的内存或者释放尚未被使用的内存,这将导致内存泄漏或者无效的内存访问。垃圾回收器通过监测和回收不再使用的内存,帮助我们解决了这些问题,使得我们能够更专注于程序的逻辑实现,而不必过多关注内存管理细节。垃圾回收器(Garbage Collector)是现代编程语言中的一项重要技术,它提供了自动内存管理的机制,极大地简化了开发人员对内存分配和释放的繁琐工作。通过垃圾回收器,我们能够更高效地利用计算机的内存资源,减少内存泄漏和程序崩溃的风险。

2023-12-14 00:49:24 1851 62

原创 【从零开始学习JVM | 第八篇】学习垃圾回收算法 和 垃圾回收器

现代编程语言通常采用垃圾回收机制来自动管理内存。垃圾回收机制是一种自动化的内存管理技术,可以在程序运行时自动识别和回收不再使用的内存,从而减少内存泄漏和其他内存相关问题的发生。本文将介绍垃圾回收算法和垃圾回收器的相关知识,帮助读者深入了解内存管理的实现原理和技术细节。

2023-12-13 23:50:50 1541 22

原创 【从零开始学习JVM | 第七篇】深入了解 堆回收

Java堆作为内存管理中最核心的一部分,承担着对象实例的存储和管理任务。堆内存的高效使用对于保障程序的性能和稳定性至关重要。因此,深入理解Java堆回收的原理、机制和优化策略,对于Java开发人员具有重要的意义。本文旨在探讨Java堆回收的相关概念、工作原理以及常见的回收算法,帮助读者全面理解Java内存管理中的关键环节,并提供实用的建议和最佳实践,以便更好地应对内存管理方面的挑战,提升Java应用程序的性能和稳定性。

2023-12-13 21:06:38 1375 4

原创 【从零开始学习JAVA重要知识 | 第一篇】深入解读HashMap源码(含面试题)

HashMap是 Java 中的一个常用数据结构,用于存储键值对它基于哈希表(hash table)实现,允许 null 键和 null 值,并且具有快速的查找、插入和删除操作。HashMap 继承自抽象类 AbstractMap,并且实现了 Map 接口。这

2023-12-13 15:54:06 1613 50

原创 【从零开始学习JVM | 第六篇】快速了解 直接内存

当谈及Java虚拟机(JVM)的内存管理时,我们通常会想到堆内存和栈内存。然而,还有一种被称为"直接内存"的特殊内存区域,它在Java应用程序中起着重要的作用。直接内存提供了一种与Java堆内存和本地内存进行交互的方式,同时也为我们提供了更高效的内存管理手段。在本文中,我们将深入探讨JVM直接内存的概念、工作原理和使用场景。我们将介绍直接内存与Java堆内存的对比,探讨其中的异同点。此外,我们还将探讨如何使用Java NIO库来操作直接内存,以及如何通过合理的使用直接内存来提升应用程序的性能。目录。

2023-12-12 19:43:31 1701 9

空空如也

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

TA关注的人

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