- 博客(61)
- 收藏
- 关注
原创 UDP/TCP套接字编程简单实战指南
本文介绍了UDP和TCP套接字编程的核心API及实现示例。UDP部分详细讲解了DatagramSocket、DatagramPacket和InetSocketAddress类的使用方法,并给出了Echo服务器和客户端的完整代码实现。TCP部分则重点介绍了ServerSocket和Socket类的关键方法,展示了基于多线程的Echo服务器实现。两种协议的实现都包含了请求接收、处理和响应的完整流程,其中UDP采用数据报方式通信,TCP则通过字节流进行数据传输。文章还对比了两种协议在编程实现上的主要差异,为网络编
2025-08-16 15:18:40
1654
原创 网络通信与Socket套接字详解
本文系统介绍了网络通信的基本原理与Socket套接字技术。主要内容包括:1)网络通信五层模型(物理层、数据链路层、网络层、传输层和应用层)及数据封装/分用流程;2)IP地址、端口号、网络协议等核心概念;3)TCP/UDP协议的特性对比(有/无连接、可靠/不可靠传输等);4)Socket套接字分类(原始套接字、流套接字和数据报套接字)及其在TCP/IP协议栈中的位置。文章通过日常生活中的快递类比,生动解释了网络通信的抽象概念,为后续网络编程实践奠定了理论基础。
2025-08-03 21:13:31
1529
原创 文件管理与Java操作全解析
本文系统介绍了文件的概念和Java文件操作。首先阐述了文件的广义和狭义定义,以及文件系统的树形结构和路径概念(绝对路径和相对路径)。然后详细讲解了Java中File类的使用方法,包括文件属性获取、创建删除、目录操作等。重点介绍了Java的流式文件读写机制,包括字节流(InputStream/OutputStream)和字符流(Reader/Writer)的使用方法,并演示了文件读写、追加写入等操作示例。文章还特别强调了资源关闭的重要性,介绍了try-with-resources语法。最后总结了不同流类
2025-06-28 15:00:49
1610
原创 JUC进阶:线程安全与锁优化全解析
虽然创建销毁线程比创建销毁进程更轻量,但是在频繁创建销毁线程的时候还是会比较抵消。线程池就是为了解决这个问题。如果某个线程不在使用了,就不是真正把线程释放,而是放到一个 "池子" 中,下次如果需要用到线程就直接从池子中取,不必通过系统来创建了。ConcurrentHashMap 核心优化点;(1) 把锁整个表 变成 锁桶(2) 使用 原子类 针对 size 进行维护(3) 针对哈希扩容的场景 化整为零 确保每个操作的加锁时间不要太长
2025-04-17 12:23:25
1597
1
原创 深入解析锁策略与synchronized原理与CAS原理详解
1、常见的锁策略:悲观锁 vs 乐观锁、重量级锁 vs 轻量级锁、挂起等待锁 vs 自旋锁、普通互斥锁 vs 读写锁、可重入锁 vs 不可重入锁、公平锁 vs 非公平锁。2、synchronized的原理:JVM 将 synchronized 锁分为 无锁、偏向锁、轻量级锁、重量级锁 状态。会根据情况,进行一次升级。3、CASL:全称为:compare and swap,也就是 "比较并交换",一个CAS涉及下述操作:1)比较 A 和 V 是否相等。(比较)2)如果比较相等,将 B 写入 V。(
2025-04-09 22:27:09
1725
1
原创 深入解析单例模式与阻塞队列与定时器的认识
单例模式存在很多种,最常见的就是 “饿汉” 和 “懒汉” 模式。阻塞队列能是一种线程安全的数据结构,并且具有以下特性:• 当队列满的时候,继续入队列就会阻塞,直到有其他线程从队列中取走元素。• 当队列空的时候,继续出队列也会阻塞,直到有其他线程往队列中插入元素。 生产者消费者模型有以下两种好处:1. 阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。(削峰填谷)2. 阻塞队列能使生产者和消费者之间 解耦。
2025-03-31 17:13:55
1721
原创 深入解析Java多线程安全:synchronized与volatile
保证线程安全的思路1)使用没有共享资源的模型2)使用共享资源只读,不写的模型(1)不需要写共享资源的模型(2)使用不可变对象3)直面线程安全(重点)(1)保证原子性(2)保证顺序性(3)保证可见性
2025-03-24 16:41:24
1948
5
原创 多线程编程入门与实战指南
总结:进程与线程的区别• 进程是包含线程的,每个进程至少有一个线程存在,即为主线程;• 进程是系统进行资源分配和调度的一个独立单位,线程是程序执行的最小单位;• 进程有自己的内存地址空间,线程值独享指令流执行的必要资源,如寄存器和栈;线程安全问题 产生原因1、「根本」操作系统对于线程的调度是随机的,抢占式执行2、多个线程同时修改同一个变量3、修改操作,不是原子的4、内存可见性问题,引起的线程不安全问题5、指令重排序,引起的线程不安全问题
2025-03-14 20:22:19
3242
2
原创 揭秘操作系统核心:进程与并发全解析
进程(Process)是程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。(每个进程都占用独立的内存空间)使用多进程来进行并发编程,但是对于进程来说是一个比较“重”的概念。创建进程和销毁进程呢开销是非常大的,尤其是频繁的创建销毁,所以现在引入了 线程的概念
2025-03-07 19:34:12
1278
1
原创 MySQL — 事务 (o゚▽゚)o
OK,我们的事务到这里呢也就结束了,并且对于MySQL的基础知识呢,我们到这里也同样了解完了,我们呢在下一博客中就要开启新的篇章了,让我们尽情期待吧!!!拜拜~~~
2024-10-29 13:31:21
1031
1
原创 MySQL—索引 |ू・ω・` )
MySQL 的索引其实是一种数据结构,它可以帮助数据库高效的查询、更新数据表中的数据,索引通过一定的规则排列数据表中的记录,使得对表的查询可以通过 索引来加快速度。其实 索引 就像是每本书都有的 目录 一样,通过指向数据行的位置,可以快速的定位和访问表中的数据,比如对于字典中的按笔画、按偏旁部首等来进行快速的查找要查找的字。使用索引的目的:对于使用索引的目的非常的简单,就是提升数据搜索的效率。
2024-10-26 21:49:32
968
原创 MySQL-视图 (ಥ_ಥ)
OK,这个对于视图呢我们就到这里就结束了,对于这个呢 视图 是非常简单的一个知识了,我们在下一篇博客中介绍有关与 索引 的知识,让我们尽情期待吧!!!拜拜~~~
2024-10-23 22:03:59
1367
原创 MySQL—CRUD—进阶—(二) (ಥ_ಥ)
OK,我们对于 MySQL 中的 CRUD的增删改查呢,到这里就都结束了,对于这个 知识点呢,我们要多的进行练习,这是非常重要的知识。到这里就结束了,拜拜~~~
2024-10-21 22:24:19
1304
原创 MySQL—CRUD—进阶— (一) |ू・ω・` )
OK,到这呢,我们对于 约束类型 和 表的设计 相关的就到这里就结束了,我们这次的博客呢它们里面的知识比较多,我们要认真的去了解,尤其是对于表的设计相关的知识。我们下次继续介绍关于——CRUD 的进阶。让我们尽情期待吧!!!拜拜·~~~
2024-10-18 13:05:14
1049
原创 MySQL-CRUD-基础-(详解) ┗( ▔, ▔ )┛
OK,到这里呢,我们的 CRUD 的基础操作到这里就结束了,在下一篇博客中我们来介绍一下对于 CRUD 的进阶操作与其介绍。尽情期待吧!!!拜拜~~~下次见。
2024-10-14 19:40:46
1456
原创 MySQL-数据库的基础操作 o(´^`)o
OK,到这里呢,我们的关于 MySQL 的第一篇博客的分享就到这里就结束了,我们下一篇来了解一下 —— 表的增删查改。欲知后事如何,且听下回~,拜拜~~~
2024-10-11 20:38:02
1294
原创 Java-数据结构-Lambda表达式 (✪ω✪)
Lamdba表达式的语法: (parameters) -> 方法体 为了能让 Lambda 在Java的集合类中能更好的使用呢,在集合中呢,也添加了一些接口,以便于和 Lambda 使用。
2024-10-08 22:39:58
1346
原创 Java-数据结构-反射、枚举 |ू・ω・` )
反射:Java的反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息。这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。枚举:但是呢,这种方法呢有不好的地方,比如:我们正好有个数字 1 ,那么它有可能误会为是 RED,这个时候呢,我们就可以使用 枚举 来实现,这样就有了类型——枚举类型。优点: 将常量组织起来同一进行管理。
2024-10-07 21:33:08
1309
原创 Java-数据结构-Map和Set(三)-习题 o(´^`)o
OK,这次关于我们的 哈希表 相关的练习题呢,到这里就结束了,让我们下次再见,下次呢我们就要进入新的知识章节了,让我们尽情期待吧!!!拜拜~~~
2024-10-03 15:25:20
1061
原创 Java-数据结构-Map和Set-(二)-哈希表 |ू・ω・` )
OK,我们这次对于 哈希表 的介绍和简单的实现原理呢到这里也就结束了,我们接下来呢,来解决几道关于 哈希表 相关的题吧!!!让我们尽情期待吧~拜拜~~~
2024-09-29 19:24:12
1972
3
原创 Java-数据结构-Map与Set-(一) ٩(๑>◡<๑)۶
OK,但这里我们的 Set 和 Map 的有关知识的一部分就到这里就结束了,在下一篇博客中会介绍关于 哈希 的一些知识,并且自实现一下 哈希表。让我们尽情期待吧!!!拜拜~~~
2024-09-27 11:42:34
1342
原创 Java-数据结构-排序(三) |ू・ω・` )
OK,到这里呢我们的排序呢就结束了,这次关于排序的代码呢还是比较多的,要认真的理解它们,同时要画图的去理解它们的执行流程。下一篇博客呢我们就要介绍关于Map与Set的知识啦,让我们尽情期待吧!!!拜拜~~~
2024-09-24 20:13:54
850
原创 Java-数据结构-排序-(二) (๑¯∀¯๑)
OK,我们这次的博客就到这里就结束了,我们这次博客虽然我们只介绍了 一类排序——交换排序,但是呢我们这篇博客是非常重要的,因为我们的快速排序是经常使用的排序方法,所以要多加理解这个排序。我们在下一篇博客就会把排序收尾,让我们尽情期待吧!!!拜拜~~~。
2024-09-22 20:20:39
1403
原创 Java-数据结构-排序-(一) (。・ω・。)
OK,我们这次的关于排序的博客就到这里就结束了,我们已经介绍了两大类的排序方法了,接下来我们再来看看另外的两大类的排序,让我们的尽情期待吧!!!拜拜~~~
2024-09-21 18:51:30
1689
原创 Java-数据结构-优先级队列(堆)-(二) (゚▽゚*)
OK,我们这次的博客就到这里就结束了,这里呢还是比较难理解的,所以我们要多进行练习一下,那么我们下次的博客呢,就开始接受我们的排序的问题了,这个排序还是很重要的,我们尽情期待吧!!!拜拜咯~~~
2024-09-20 14:19:33
1079
原创 Java-数据结构-优先级队列(堆)-(一) (;´д`)ゞ
OK,这篇博客呢就到这里就结束了,这篇博客我们介绍的是 优先级队列 的底层操作代码,下一篇博客我们来看看 Java 自带的 优先级队列吧~~并且还有一些关于我们的优先级队列的习题,敬请期待吧!!!拜拜·~~~
2024-09-18 22:59:01
1110
原创 Java-数据结构-二叉树-习题(三)  ̄へ ̄
OK,我们的这个关于我们的二叉树的习题三但这里就结束了,同时到这里呢,我们的数据结构 ——二叉树 也就结束了,之后呢我们进入到新的章节了,欲知后事如何,且听下回分说拜拜啦~~~我们下篇博客再见。
2024-09-17 21:34:23
1438
2
原创 Java-数据结构-二叉树-习题(二) (´▽`)ノ
OK啦,今天的练习题呢就到这里就结束了,还是那句话,对于二叉树的题,我们要时刻记住递归的性质与应用。今天的题呢还是比较难理解的,我们一定要配合着画图去理解。让我们期待下一篇博吧!!!拜拜~~~
2024-09-16 14:58:45
1158
原创 Java-数据结构-二叉树-习题(一) (✪ω✪)
OK,我们这次关于二叉树的习题的练习就到这里就结束了,我们在做这种二叉树的题的时候时刻都不要忘记递归的思想。我们呢下篇博客呢还是介绍关于我们二叉树的练习题了,让我们尽情期待吧!!!拜拜~~~
2024-09-13 17:50:52
916
原创 Java-数据结构-二叉树-基础 (o゚▽゚)o
OK,到这里呢,我们的二叉树基础就到这里就结束了,我们接下来看看关于二叉树的相关的习题,并且在题中我们会看见我们 二叉树的创建方法。让我们期待下次的博客吧!!!拜拜啦~~~
2024-09-12 12:53:42
1251
原创 Java-数据结构-栈和队列-习题 (<ゝω・)☆
OK,我们的这次关于栈的队列的练习题呢,到这里就已经结束了,我们这次的博客圆满结束,我们呢关于下一篇博客呢,我们来介绍关于二叉树的知识啦,让我们敬请期待吧!!!拜拜~~~。
2024-09-10 15:54:06
1440
原创 Java-数据结构-栈和队列-Stack和Queue (o゚▽゚)o
栈:是一种特殊的线性表,其 只允需在固定的一端进行插入和删除操作。 进行插入和删除的一端叫做栈顶,另一端叫做栈底。并且要遵循 先进后出 的规则。队列:是一种只允许一端进行插入元素,在另一端进行删除元素的特殊的线性表。 队列具有 先进先出 的性质:进行插入的一端叫做队尾,进行删除的一端叫做队头。也就是队尾进,队头出。
2024-09-07 23:49:10
1179
原创 Java-数据结构-链表-习题(三)(๑´ㅂ`๑)
OK啊,这次的对于链表的练习题就到这里就结束了,我们对于下次的分享呢,我们来分享关于栈的相关的知识了。希望这次的链表的习题对于你们有所帮助吧!!!让我们期待下次的见面吧,拜拜~~~
2024-09-05 12:56:19
1515
原创 Java-数据结构-链表-LinkedList(二)|ू・ω・` )
文本目录:☛一、LinkedList(无头双向非循环链表的结构):☛ 二、LinkedList的模拟实现: ❄️1、操作方法: ▶(1)、display()方法: ▶(2)、size()方法: ▶(3)、contains(int key)方法: ▶(4)、addFirst(int data)方法:▶(5)、addLast(int data)方法:▶(6)、addIndex(int index,int data)方法:▶(7)、remove(int data)方法: ▶(8)、rem
2024-09-03 20:34:41
1579
1
原创 Java-数据结构-链表-LinkedList(一) (^_−)☆
OK,我们的单向无头非循环的链表得自实现就到这里就结束了,我们呢在下次再介绍我们Java编译器里自带的链表的方法——双向无头非循环的自实现和在Java中的使用。让我们下次再见!!!拜拜~~~
2024-09-02 20:12:40
1551
原创 Java-数据结构-ArrayList-练习 ψ(*`ー´)ψ
OK,我们这次关于顺序表的练习就到这里就结束了,我们接下来介绍为了解决顺序表ArrayList 的缺陷方面,而出现的链表的介绍。让我们期待下次的见面吧!!!拜拜~~~t=N7T8。
2024-09-01 13:57:19
723
原创 Java-数据结构-ArrayLis与线性表 (๑╹◡╹)ノ“““
我们可以看到这个图片的最左边呢就是我们List,这个List继承了 Collection 接口,Collection接口又继承了 Iterable,接口,所以我们的 List 接口就有了这两个接口的所有方法。在我们站在数据结构的角度来看呢,List 接口就是一个线性表,就是n个具有相同类型的元素的有限序列 ,在这个序列上可以进行增删查改的操作。注意我们的List是一个接口,不能实例化,要是使用的话,只能去实例化List的实现类。
2024-08-30 23:28:54
1993
原创 Java-数据结构-包装类和认识泛型 !!!∑(゚Д゚ノ)ノ
对于泛型就是:使用与许多许多类型。从代码上来说呢,就是对类型实现了参数化。对于引出泛型,我们来实现一个类,类中包含一个数组成员,使得数组中可以存放任何类型的数据,也可以根据成员方法返回数组中某个下标的值。在这里呢,我们用 Object类 来进行创建数组,Object是所有类的父类,但是呢,我们在这里呢就有一些问题,我们来看看:1、在这里呢,我们这个数组当中可以存放任何类型2、我们每次进行的到值时候呢,都要进行强转。
2024-08-27 22:35:52
1405
原创 Java-数据结构-时间和空间复杂度 (ಥ_ಥ)
对于我们分析我们的算法效率是我们要分析两个方面:时间效率 和 空间效率。O(1) < O(logN) < O(N) < O(N*logN) < O(N^2)这是我们会常见的复杂度,这是他们之间的大小关系。
2024-08-26 19:30:12
1154
1
原创 Java—基础知识总结 ٩(๑❛ᴗ❛๑)۶
数组就是相同类型元素的集合,并且空间是连在一起的,其起始坐标为 0,也就是数组的下标。类就是对于一个对象的描述的。在我们Java中定义一个类的时候要使用到class关键字。类的定义格式:class 类名 {// 字段(属性)或 成员变量// 成员方法 或 行为注意:类名要用大驼峰不能带static关键词当我们定义了一个类,就相当于在计算机中定义了一种新的类型。当我们用类创建对象的过程中,称为类的实例化。在Java中采用new这个关键词,来配合类名类来实例化对象。
2024-08-25 14:41:26
1553
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅