- 博客(148)
- 问答 (1)
- 收藏
- 关注
原创 了解 Redis 底层的秘密:从 SDS 动态扩展到内存优化
Redis 中的 string 类型是最基本的数据类型之一,尽管它看似简单,底层的实现却非常巧妙和高效。为了更好地处理不同长度的字符串并优化内存和性能,Redis 使用了多种数据结构和编码方案。这篇文章将详细解析 Redis 中 string 底层的实现机制,重点关注,以及 Redis 针对字符串的不同编码策略。
2024-10-14 07:00:00
782
原创 深度学习:手写感知机
上面是一只猫,人类的大脑可以很轻松地识别出。人脑是如何识别的呢?人类能够识别出这只猫,是因为这张图片具有猫的典型特征。例如,猫的耳朵、眼睛、猫须、嘴巴等独特的形态特征,可以迅速引起大脑的注意和识别。当我们的大脑看到这些特征时,能够与之前的经验相匹配,从而判断出这是一只猫。计算机是否可以模拟人脑的方式,判断出这是一只猫呢?要让计算机模拟人脑的识别过程,首先需要了解人脑的基本工作原理。一个刚出生的大脑虽然有一定的感知能力,但识别能力尚未完全发育。
2024-10-12 07:00:00
879
原创 SpringBoot:让开发更加简单
有一天,你脑海中闪现了一个想法:“学了 Java 好像还没怎么使用,今天要不用 Java 开发一个自己的网站?” 你想着不禁激动起来,觉得这是可以提升自我,展示能力的机会。然而,当你打开代码编辑器的时候发现,好像这有点复杂…“项目该如何开始?项目的结构应该是怎样的?项目需要使用哪些依赖?项目如何集成服务器…” 你翻看了许多教程,尝试了许多方案,发现都很复杂。时间悄悄过了几个小时,内心的激情也逐渐消散。心想:“要不还是算了吧。一个原本充满激情的想法,因为种种技术细节而逐渐被放弃,只剩下一阵复杂的心情。
2024-10-07 07:00:00
1125
原创 WinSCP:文件传输的必备神器
对于每一位开发者而言,几乎每天都需要进行文件传输的工作——本地到服务器、服务器到本地、甚至多服务器之间。相信大家或多或少都接触了一些文件传输工具。Xshell;要么就是scp这样的命令行工具,这对不熟悉命令行的用户非常不友好。今天,就为大家带来一款工具可以解决上面所有的问题——WinSCP。WinSCP 是 Windows 环境下一款开源的图形化文件传输工具。WinSCP 几乎支持市面上所有的文件传输协议,比如:SFTP、SCP、FTP、WebDAV、Amazon S3 等。
2024-10-06 07:00:00
3674
原创 深度学习架构演变:从感知机到Transformer的技术革新
深度学习自诞生以来,经历了多次技术迭代,逐步解决了模型的复杂性、训练效率和对各种数据类型的适应能力等问题。从早期的简单神经网络到如今大规模预训练模型的广泛应用,深度学习架构的发展推动了人工智能的迅速进步。本文将清晰梳理深度学习架构从起步到当前阶段的发展历程。
2024-10-05 08:30:00
1490
原创 Java 每日一刊(第21期):反射机制
这里是分享 Java 相关内容的专刊,每日一更。动态插件系统Java 反射的核心概念Java 反射的应用场景反射的优缺点反射实战本期小知识。
2024-10-05 06:30:00
962
原创 GPT 的工作原理:深入解析
GPT(Generative Pretrained Transformer)是一种基于 Transformer 架构 的自然语言处理模型。通过对用户输入的文本进行语义分析,GPT 能够生成连贯、符合上下文的回答。输入处理Transformer 内部计算自注意力机制输出生成。本文将逐步解析这些步骤,尤其是 Transformer 的详细结构和机制,并通过具体示例说明每一步的作用。Transformer 是由多层堆叠的编码器-解码器(Encoder-Decoder)结构演化而来,但 GPT 仅使用其中的解码器。
2024-10-04 08:30:00
2118
4
原创 Java 每日一刊(第20期):I/O 流
这里是分享 Java 相关内容的专刊,每日一更。流的起源及概念Java I/O 流概述字节流字符流转换流缓冲流对象流与序列化流的关闭与资源管理字节流(Byte Stream):以字节为单位读写数据。字符流(Character Stream):以字符为单位读写数据。此外,Java 还提供了缓冲流转换流对象流等处理流,进一步提升 I/O 操作的效率和功能。自 Java 1.4 起,还引入了 NIO(New I/O)以增强高效并发操作。分类依据类别说明示例。
2024-10-04 07:00:00
1978
原创 Java 每日一刊(第19期):泛型
这里是分享 Java 相关内容的专刊,每日一更。泛型概述泛型的基本语法泛型类型推断与钻石操作符通配符的使用泛型的高级特性泛型在 Java 集合中的应用泛型的运行时行为与限制常见泛型问题与解决方案泛型的设计与最佳实践泛型听起来很复杂,但其实,它的工作原理就像一个“模具”或“占位符”。在编写代码时,我们可能希望编写一个可以处理多种不同数据类型的功能,比如数字、字符串或者其他类型,而不需要为每种类型重复编写相同的代码。泛型就能帮我们做到这一点!泛型的核心思想。
2024-10-03 07:00:00
1050
原创 Raft 协议解读:简化分布式一致性
分布式系统是指由多个计算机或服务器组成的系统,这些计算机分布在不同的物理位置上,但它们通过网络通信合作完成任务。简单来说,分布式系统就是把一项任务分成许多部分,由不同的计算机同时完成,最终汇总结果。举个例子:假设你和一群朋友一起拼一个巨大的拼图,如果每个人拼一部分,最后大家把各自拼好的部分合在一起,整个拼图就完成了。分布式系统的工作方式类似,每台计算机完成一部分工作,最终整合成一个完整的结果。Raft。
2024-10-02 07:00:00
1969
原创 Java 每日一刊(第18期):集合
这里是分享 Java 相关内容的专刊,每日一更。本期将为大家带来以下内容:在日常编程中,我们经常需要处理 一组数据,比如要保存一系列的数字、字符、对象等。为了高效地管理和操作这些数据,Java 提供了一套强大且灵活的工具,称为 集合框架(Collections Framework)。简单来说,集合框架就是 一组类和接口,用来存储、操作和处理多个数据。举个简单的例子,当你需要存储多个名字、数字或对象时,Java 集合框架可以让你轻松完成这些任务,而不必自己编写复杂的代码来手动处理这些数据。通过使用集合框架,我
2024-10-01 09:50:23
1344
原创 Paxos 协议详解:分布式系统一致性的基石
一个分布式系统可以理解为一群计算机,它们不在同一个地方,但可以通过网络协作完成任务。换句话说,分布式系统中的每个计算机(我们叫它“节点”)都可以独立运行,但它们通过相互沟通,来共同处理任务或存储数据。举个简单的例子,如果你和朋友打一个在线多人游戏,你们的每一台设备就是一个节点。这些设备通过网络与游戏服务器沟通,保证你们看到的游戏世界是一样的。分布式系统的好处是,即使一个节点出了问题,其他节点也能继续工作。在了解了分布式系统和一致性问题后,我们现在进入 Paxos 协议的核心。
2024-09-27 21:47:15
1882
原创 深入浅出 AbstractQueuedSynchronizer (AQS)
AQS 是一个用于实现线程同步的框架。假设多个线程在争抢某个资源(比如一把锁),AQS 负责决定哪个线程能够拿到资源,哪些线程需要等待,并保证在多个线程同时竞争时不会出错。
2024-09-26 21:05:48
1028
原创 深入解析 helpTransfer 方法:多线程协作中的哈希表扩容
哈希表(HashMap)是一种常用的数据结构,它通过“键值对”的形式来存储数据。它的核心思想是:根据每个“键”(key)的特征,通过一种叫做哈希函数的计算,把这个键映射到一个位置(格子)上。这样,我们就能快速找到或存储对应的值(value)。打个比方:假设你有一个大抽屉(哈希表),你要把很多标有标签的物品放进去。你根据物品的标签(键),使用一个“算法”决定这个物品应该放在哪个小格子(具体位置)。
2024-09-25 09:00:00
1141
原创 Java 每日一刊(第17期):注解
这里是分享 Java 相关内容的专刊,每日一更。本期将为大家带来以下内容:1. 什么是 Java 注解2. 为什么需要注解3. 注解的类型4. 注解的生命周期5. 注解的工作原理6. 注解继承
2024-09-25 07:00:00
829
原创 Java 每日一刊(第16期):异常机制
这里是分享 Java 相关内容的专刊,每日一更。本期将为大家带来以下内容:1. 异常处理2. 捕获与处理异常3. 自定义异常4. try-with-resources
2024-09-24 07:00:00
2188
原创 Java 每日一刊(第15期):内部类
这里是分享 Java 相关内容的专刊,每日一更。本期将为大家带来以下内容:1. 内部类2. 内部类的详细对比3. 内部类字节码文件4. 内部类的典型使用场景
2024-09-23 07:00:00
1864
原创 深入解析:ConcurrentHashMap 与 HashMap 中哈希值与索引计算的差异
在 Java 集合框架中,HashMap 和 ConcurrentHashMap 是两种非常重要的哈希表实现。尽管它们的核心功能类似,都是通过键的哈希值将键映射到对应的桶(bucket),但它们的设计目标和实现细节却大相径庭。尤其是在 哈希值的处理 以及 桶索引的计算 上,二者采取了不同的策略。本文将详细解析 为什么 ConcurrentHashMap 需要显式地将负数哈希值转化为正数,而 HashMap 可以在计算索引时自动解决负数问题。
2024-09-22 08:00:00
771
原创 Java 每日一刊(第14期):抽象类和接口
这里是分享 Java 相关内容的专刊,每日一更。本期将为大家带来以下内容:1. 抽象类2. 接口3. 抽象类和接口的区别4. 什么时候用抽象类,什么时候用接口5. 抽象类可以实现接口6. 接口中的常量其实是 public static final7. 标记接口(Marker Interface)8. 接口可以扩展多个接口9. 接口中的方法可以有多个默认实现来源
2024-09-22 07:00:00
827
原创 深入剖析 Java 中的 tableSizeFor 方法:通过位运算计算最小的 2 的幂
在 Java 的 HashMap 实现中,有一个常用的内部方法 tableSizeFor(int c),它用于计算大于或等于指定整数 c 的最小 2 的幂。这在调整哈希表的容量时尤为重要,保证数组的容量总是 2 的幂次,能使哈希函数运算更加高效。本文将通过详细分析 tableSizeFor 的源代码,解释其背后的位运算技巧和算法原理,并特别关注其中的一些关键细节,比如为什么位扩展到 16 位时停止。
2024-09-21 10:00:00
792
原创 Java 每日一刊(第13期):this super static
这里是分享 Java 相关内容的专刊,每日一更。本期将为大家带来以下内容:1. this 关键字2. super 关键字3. static 关键字
2024-09-21 07:00:00
1027
原创 深度解析:Java 中的哈希计算与哈希碰撞优化
在 Java 编程中,HashMap 是一种常用的集合类,它通过哈希表来存储键值对。然而,在哈希表中,如果多个不同的键被分配到相同的桶中,便会发生哈希碰撞,进而影响性能。为了减少这种碰撞,Java 通过一个混合高低位的哈希计算 (h = key.hashCode()) ^ (h >>> 16) 来优化哈希值的分布。本文将深入剖析这一优化机制,并解释它如何减少哈希碰撞。
2024-09-20 09:00:00
1388
原创 Java 实现桌面烟花秀
今天,我们将展示如何使用 Java Swing 创建一个烟花效果,覆盖整个桌面。我们将重点讲解如何在桌面上展示烟花、如何实现发射和爆炸效果,以及如何将这些效果整合到一个完整的程序中。
2024-09-19 09:00:00
1013
原创 中秋:明月寄相思,灯笼映团圆
今天是中秋,这里先祝大家节日快乐!🎆🎆🎆 在这篇博客中,我们将展示如何通过 HTML、CSS 和 JavaScript 结合 anime.js 库制作一个简单的中秋节祝福动画。我们将创建一个具有动态背景、月亮、灯笼和祝福文字的网页动画,帮助我们为节日增添一些氛围。
2024-09-17 08:30:00
1071
原创 Java 每日一刊(第3期):Hello World
这里是分享 Java 相关内容的专刊,每日一更。本期将为大家带来以下内容:1. “Hello World”:第一个 Java 入门程序2. 程序是如何执行的3. “Hello World”里面有什么
2024-09-11 07:00:00
387
原创 Java 每日一刊(第2期):搭建开发环境
JVM 是 Java 平台的核心组件之一,它负责执行 Java 字节码(bytecode)。字节码是 Java 编译器生成的中间代码,独立于具体的硬件平台。JVM 的作用是将这些字节码转换为机器指令,使程序能够在不同的操作系统上运行。
2024-09-10 07:00:00
1043
原创 Java 每日一刊(第一期):Java 的历史
Java 的历史可以追溯到 20 世纪 90 年代,由 Sun Microsystems 的团队开发,最初作为一个名为“Green Project”的项目启动。詹姆斯·高斯林(James Gosling) 是 Java 语言的核心设计者,他与团队的目标是为消费电子设备(如电视机顶盒)开发一种能够在不同硬件环境中运行的语言。
2024-09-09 19:32:49
971
原创 你需要掌握的算法:快慢指针
在处理链表数据结构时,快慢指针是一种非常高效的算法技巧。它通过使用两个指针以不同的速度移动来解决链表中的各种问题,如检测链表是否有环、找到链表的中间节点、计算环的长度等。本文将详细介绍快慢指针的基本概念、主要应用及示例代码,帮助大家在实际开发中更好地理解和应用快慢指针。
2024-09-09 18:25:52
1327
原创 Visual Studio Code 月刊 (2024-08)
2024 年 8 月 Visual Studio Code(简称 vscode)发布了 version 1.93。该版本带来了许多更新,本次更新的主要亮点有:1. 配置文件编辑器:从一个地方集中切换和管理您的配置文件。2. Django 单元测试支持:测试资源管理器中支持运行 Django 单元测试。3. vscode.dev 上的 IntelliSense:使用 IntelliSense 增强 vscode.def 中的 JS 和 TS 编码。4. 笔记本差异查看器:通过折叠未更改的单元格,高效地
2024-09-08 13:16:11
1621
原创 黑神话:游戏的诞生
近期,国产 3A 大作《黑神话:悟空》给我们带来了一波惊喜。相信各位或多或少都有所了解。看见如此激动人心的产品我们除了欣喜,也不禁让我们思考起来游戏是如何实现的?我们能否开发一款属于自己的游戏? 今天我们借此来讨论一下游戏的基本原理以及优质的游戏是如何诞生的。
2024-09-07 07:00:00
977
原创 如何在 Java 应用程序中定位高 CPU 使用率问题
在运行 Java 应用程序的服务器上,高 CPU 使用率可能会影响应用程序的性能和稳定性。本文将介绍如何通过一系列步骤和工具来准确诊断和解决高 CPU 使用率问题,特别是针对 Java 环境下的应用程序。
2024-09-06 19:44:13
702
自定义 spring-boot 项目的 maven 模板
2024-07-04
组合注解实现的方案以及 java 规范中有组合注解吗?
2021-10-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人