- 博客(53)
- 收藏
- 关注
原创 Jedis 原生之道:Redis 命令 Java 实现指南(二)
Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~📚本系列文章为个人学习笔记,在这里撰写成文一为巩固知识,二为展示我的学习过程及理解。文笔、排版拙劣,望见谅。
2025-07-05 18:08:11
895
原创 Jedis 原生之道:Redis 命令 Java 实现指南(一)
本文介绍了如何在Windows开发机上通过SSH端口转发访问Linux云服务器的Redis数据库。
2025-07-04 10:42:01
683
原创 ACM模式用Scanner和System.out超时的解决方案和原理
Java 在处理 IO 的时候,有两套标准:字节流(System.in)字符流(带 Reader 或者 Writer)// 写代码class Read // 自定义快速读入// 字符串分割器// 缓冲读取器// 核心方法:获取下一个输入片段while(!
2025-05-16 21:30:37
992
原创 【Java基础】为什么不支持多重继承?方法重载和方法重写之间区别、Exception 和 Error 区别?
Java 通过禁止类的多继承避免了菱形问题和状态冲突,而接口的多实现通过以下机制保证安全:接口方法由实现类统一实现(消除方法歧义)。默认方法冲突需显式解决(开发者控制逻辑)。接口不涉及状态管理(避免字段冲突)。这种设计在保证语言简洁性的同时,提供了高度的灵活性,符合“单一继承,多重接口”的面向对象设计原则。
2025-02-09 21:11:18
711
5
原创 【Java基础】序列化、反序列化和不可变类
不可变类 是指在创建后其状态(对象的字段)无法被修改的类。一旦对系被创建,它的所有属性都不能被修改。也就是说,对象的所有成员变量在初始化后就不能被修改,无论是通过外部方法还是内部方法。这种类的实例整个生命周期内保持不变。
2025-02-08 23:54:27
1460
32
原创 默契之舞 之 生产者消费者模式(RabbitMQ)
默契之舞:形容生产者和消费者之间默契的配合,仿佛在跳一场没有言语的舞蹈,优雅而流畅,暗合彼此的节奏。
2024-12-12 10:00:00
4700
85
原创 信使之舞 之 RabbitMQ 核心概念
RabbitMQ的每一环节都如同一位舞者,协调一致地进行着信息的流转与传递。每一次消息的产生与消费,都是技术与艺术的完美融合,推动着现代分布式系统在这一舞台上翩翩起舞。
2024-12-11 10:00:00
7082
87
原创 Ubuntu 环境安装 之 RabbitMQ 快速入手
Rabbit, 兔子的意思互联网行业很多公司, 都喜欢用动物命名产品, 或者作为公司的logo, 吉祥物. 比如: 腾讯的企鹅, 京东的狗, 美团的袋鼠, 携程的海豚,阿里就更多了, 蚂蚁, 飞猪,天猫,菜鸟, 闲鱼, 盒马… 更是以一己之力, 组建了一个动物园…Rabbit也是⼀个公司名.消息队列 的意思 ,RabbitMQ是Rabbit企业下的⼀个消息队列产品.RabbitMQ是⼀个实现了AMQP的消息队列服务,是当前主流的消息中间件之⼀
2024-12-10 10:00:00
5741
98
原创 【Redis初阶】Set 集合
集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是1)set集合中元素之间是无序的(这里的无序是和前面 list 的有序是对应的有序:顺序很重要,变换一下顺序,就是不同的list无序:顺序不重要,变换一下顺序,集合还是呢个集合)2)元素不允许重复(唯一的),如图所示。一个集合中最多可以存储 2 ^32 - 1 个元素。Redis 除了支持集合内的增删查改操作,同时还⽀持多个集合取交集、并集、差集,合理地使用好集合类型,能在实际开发中解决很多问题。
2024-11-30 13:42:05
1330
14
原创 【数据结构】Map和Set(Java实现)
Map/Set 及实际实现类 HashMap/TreeMap/HashSet/TreeSet 的使用HashMap 和 HashSet 背后的数据结构哈希表的原理和简单实现
2024-08-11 22:36:56
1936
19
原创 【多线程基础】创建线程的五种方式、实现多线程数组求和
多线程代码,线程,本身是操作系统提供的,操作系统提供了 API 让我们操作线程,JVM 就对 操作系统 API 进行了封装线程,这里,提供了 Thread类,表示线程。
2024-08-11 21:17:12
1272
6
原创 【多线程基础】进程和线程的区别和联系(重要)
前面我们了解过进程的概念:一个程序运行起来,就会对应一个进程,进程也是系统分配资源的基本单位。而线程是 CPU 调度的基本单位
2024-08-10 14:03:57
1224
20
原创 【多线程基础】指令、进程调度、了解计算机是如何进行工作的
计算机不仅仅是指电脑,日常生活中用的 手机、平板、电视、路由器等…都可以叫做计算机现在的计算机,大体分为几个大类:1)终端设备:(台式机、笔记本、手机、ipad…)平时用户使用的2)服务器:日常普通用户见不到的。以后作为开发人员,要经常打交道。3)嵌入式设备:主题功能不是用来“计算”,而是针对一些特殊的场景,量身定做的“专用计算机”。以上设备:遵循“冯诺依曼体系”计算机使用二进制表示存储数据)(大的基调就是冯大佬定下来的)一个程序,运行起来/跑起来,在操作系统中,就会出现一个对应的进程。
2024-08-10 11:12:53
1673
9
原创 【数据结构】二叉搜索树(Java + 链表实现)
Map接口是独立的实现Iterable接口的集合都是可以使用 for - Each 语句进行打印的搜索性能会非常高。
2024-08-07 17:24:39
1757
21
原创 【数据结构】排序 —— 归并排序(mergeSort)、计数排序、基数排序
海量数据的排序问题外部排序:排序过程需要在磁盘等外部存储进行的排序 前提:内存只有 1G,需要排序的数据有 100G因为内存中因为无法把所有数据全部放下,所以需要外部排序,而归并排序是最常用的外部排序先把文件切分成 200 份,每个 512 M分别对 512 M 排序,因为内存已经可以放的下,所以任意排序方式都可以进行 2路归并,同时对 200 份有序文件做归并过程,最终结果就有序了。
2024-08-06 23:11:26
1429
11
原创 【数据结构】排序 —— 快速排序(quickSort)
快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有 元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度: O(N*logN)空间复杂度: O(logN)稳定性:不稳定。
2024-08-05 23:38:47
1411
8
原创 【leetcode】根据二叉树创建字符串、二叉树的前中后遍历(非递归链表实现二叉树)
递归函数我们也可以用迭代的方式实现,两种方式是等价的,区别在于递归的时候隐式地维护了一个栈,而我们在迭代的时候需要显式地将这个栈模拟出来,其他都相同.
2024-08-04 23:45:02
1776
1
原创 【leetcode】平衡二叉树、对称二叉树、二叉树的层序遍历(广度优先遍历)(详解)
在遍历每个结点进行左右子树求高度的时候,就进行判断,能够优化时间复杂度该题有递归的思想,一定要结合图形来解决层序遍历就是广度优先遍历。
2024-08-04 22:17:29
1686
1
原创 【leetcode】相同的树、另一棵树的子树、翻转二叉树(利用深度优先遍历)
一定要结合图像来写题,递归有点绕,将大问题划分成一个一个相同的小问题来求解,一定要注意判断条件。
2024-08-03 23:50:07
1277
1
原创 【数据结构】二叉树基本操作(孩子兄弟表示法 + Java详解 + 原码)
学习二叉树一定要结合图形,要掌握递归的思想,就是将一个大问题划分成相同的小问题二叉树部分要掌握前序、中序、后序、层序四种遍历方式,因为好多题就是基于这四种遍历方式的变种例如:求最大宽度求这棵树的左视图求这棵树的右视图。
2024-08-02 22:47:57
1363
6
原创 【数据结构】树、二叉树(基本概念)
在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于刚开始对二叉树结构掌握还不够深入,为了降低学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等 二叉树结构了解的差不多时,反过头再来研究二叉树真正的创建方式。从概念中可以看出,二叉树定义是递归式的,因此后序基本操作中基本都是按照该概念实现的。
2024-07-31 09:44:35
1024
2
原创 【数据结构】队列(链表实现 + 力扣 + 详解 + 数组实现循环队列 )
队列实现及使用(包括循环队列、用栈实现队列、用队列实现栈、了解双端队列)
2024-07-29 23:44:22
1404
2
原创 【LeetCode】栈 - 20.有效的括号、150.逆波兰表达式求值、155.最小栈、栈的压入、弹出序列
栈、虚拟机栈、栈帧有什么区别呢?栈 ---- 数据结构虚拟机栈 ---- JVM内存栈帧 ---- 调用方法的时候开辟的内存
2024-07-27 23:42:18
1280
3
原创 【数据结构】栈(基于数组、链表实现 + GIF图解 + 原码)
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO( Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。栈顶栈底: 这个描述是偏向于逻辑上的内容,因为大家知道数组在末尾插入删除更容易,而单链表通常在头插入删除更容易。所以数组可以用末尾做栈顶,而链表可以头做栈顶。LinkedKist 就可以当做栈来使用。
2024-07-26 23:06:28
1177
7
原创 【数据结构】链表之LinkedList(无头双链表实现 + 详解 + 原码)
LinkedList是无头双向非循环链表学习链表的知识一定要 结合图,多画图,才能深刻理解LinkedList官方文档LinkedList的底层是双向链表结构,由于链表没有将元素存储在连续的空间中,元素存储在单独的节 点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。在集合框架中, LinkedList也实现了List接口。
2024-07-26 11:03:14
1874
6
原创 【数据结构】链表(单链表实现 + 详解 + 原码)
链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。
2024-07-23 23:51:10
1394
原创 【数据结构】Java -- 顺序表(详解)
在集合框架中,List是一个接口,继承自Collection。List方法解释尾插 e将 e 插入到 index 位置尾插 c 中的元素删除 index 位置元素删除遇到的第一个 o获取下标 index 位置元素将下标 index 位置元素设置为 element清空判断 o 是否在线性表中返回第一个 o 所在下标返回最后一个 o 的下标截取部分 list在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:【说明】ArrayList是以泛型方式。
2024-07-21 23:31:42
1971
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人