编程基础
文章平均质量分 88
千筠Wyman
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Java】常用的正则表达式
正则表达式通过其基本的标识语法,定义了字符串的模式,可以用来搜索、编辑或处理文本。在不同的编码语言和环境中,可能会有略微的区分,但其定义的模式都是统一的。本文主要介绍通用的正则表达式规则,以及在 Java 应用中的一些注意事项。原创 2023-09-27 11:05:34 · 702 阅读 · 0 评论 -
【Java】Pattern 与 Matcher 类的常见应用
Java 正则表达式通过包下的 Pattern 类与 Matcher 类实现Pattern 类的实例适应正则表达式的编译表示形式,指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,根据正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都会保留在匹配器中,因此多个匹配器可以共享同一模式。生成编译后的正则表达式matcher()生成匹配器matches()执行匹配操作,并记录下匹配结果状态单独用 Pattern 只能使用。原创 2023-09-22 17:21:19 · 2003 阅读 · 0 评论 -
【设计模式】责任链模式的设计与示例
责任链模式是一种行为设计模式,执行上它允许请求沿着一条处理链路依次向下传递,每个处理节点都能对当前状态的请求进行处理,满足一定条件后传递给下一个处理节点,亦或者直接结束这一次处理流程。多层条件准入控制,如人事审批流程、权限检验、游戏通关判断等多环节拦截处理,如 Java 过滤器 Filter、组装生产链路等在这些场景里,使用责任链模式的优势在于,当其中的某个环节需要进行新增、移除、修改时,可以只对单个节点进行操作,不会影响其他节点的执行过程,保证了整个责任链的稳定,代码更加容易维护和迭代。原创 2023-04-30 07:00:00 · 1823 阅读 · 0 评论 -
Java8 Stream流的使用
Stream 概述在 Java 8 中,新增了 Stream 这个重要的抽象概念,结合同版本出现的 Lambda 表达式,Stream 通过其 API 提供了一系列高效、友好的处理集合数据的操作方式。从字面上理解,Stream 就是把集合中将要处理的元素集合看作一个流,通过使用其 API 对流中的元素进行各种操作,如过滤、映射、聚合等。它具有以下几个特性:Stream 只是一个抽象接口概念,其本身并不是一个数据结构,所以并不能用来存储数据。Stream API 不会改变数据源,所有操作的最终结果会原创 2021-11-23 15:28:23 · 2087 阅读 · 0 评论 -
【Java 集合类】LinkedList 类源码分析
LinkedList 类源码分析与数组一样,LinkedList 也是一种线性的数据结构,但它不像数组或者 ArrayList 那样在连续的内存空间上存储元素,而是通过引用相互链接,这也成为索引存储。LinkedList 之中的每一个元素都可以称之为节点(Node),每一个节点包括三个属性:元素本身的值。指向下一个节点的引用地址。指向上一个节点的引用地址。Node 是 LinkedList 类的一个私有静态内部类,其源码如下:private static class Node<E&g原创 2020-09-11 16:49:29 · 397 阅读 · 0 评论 -
【Java 集合类】ArrayList 类源码分析
ArrayList 类源码分析数组是 Java 编程中最常用的基本数据类型之一,但其本身自带的方法不多,不便于进行相对复杂的操作。因此在 Java 中有一个相对应的集合类 ArrayList,可以称得上在集合方面最常用的类了。ArrayList 类的设计逻辑如下:ArrayList 实现了 List 接口,其内在逻辑是基于数组实现的。对于数组这个基本数据类型来说,其大小在声明的时候就已经是固定了的,不能再进行动态的调整。如果依次向数组里添加数据,一旦数组满了,就不能再添加任何元素了。相比而言,Arra原创 2020-09-11 16:47:13 · 192 阅读 · 0 评论 -
【设计模式】单例模式
设计模式之单例模式顾名思义,单例模式就是用来保证一个类只能构建一个对象的设计模式。初级版本一个初始版本的单例模式实现如下:构建方法是私有的,只能由类内部调用;单例对象只能通过 getInstance 方法获取,不能直接访问。public class Singleton { private static Singleton instance = null; // 单例对象 private Singleton() {} // 私有构造函数 // 静态工厂方法原创 2020-08-07 17:19:49 · 197 阅读 · 0 评论 -
【设计模式】观察者模式
观察者模式观察者模式是一种基于事件和响应的设计模式,常常用于传统的窗体应用程序以及游戏开发领域。一个典型的场景是,在游戏操作界面中,存在游戏角色、陷阱、怪物、宝物等,当游戏角色移动到陷阱、怪物、宝物的位置时,如何让这个移动事件能够被感知到,并作出正确响应呢?传统的思路是,陷阱、怪物、宝物周期性地对自己的有效范围进行检测,当检测到主角时则作出响应。这种是“拉取”的思想,但存在明显的弊端,如果事件没有发生,那么程序就会一直“空转”,浪费资源;而且,即便事件有发生,如果检测周期太长,也无法得到实时的响应。如原创 2020-08-07 17:18:07 · 225 阅读 · 0 评论 -
【编程基础】堆空间与栈空间
在 C 语言中,内存分布的部分情况如下图所示:有些部分并没有在图中表示出来,实际上内存分布的功能划分从高地址到低地址依次是:内核空间:应用程序不允许访问的部分,只能由内核进行操作,操作系统的内核程序映射到这个区域。栈空间:保存局部变量。文件映射区:进程打开文件后,将文件内容从硬盘读到进程的文件映射区,以后就直接在内存中操作这个文件,读写完成后保存时,再将内存中的文件写入硬盘中。堆空间:运行时使用,常用 malloc( ) / free( ) 或者 new( ) / delete( )。全局的原创 2020-07-20 21:25:52 · 6786 阅读 · 3 评论 -
【编程基础】进程、线程与协程
进程、线程、协程并行与并发并行:真正意义上的同时进行多个任务。这只能在多核 CPU 上实现。并发:从宏观上看,并发就是同时进行多个事件。但实际上,这些事件并不是在同时进行,而是交替进行的。由于 CPU 的运算速度非常快,给我们造成了一种在同一时间内进行多个事件的错觉。进程进程是具有一定独立功能的程序,它是系统进行资源分配和调度的一个独立单位。在出现线程前,进程是拥有资源和独立调度的基本单位。程序运行时,系统会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它时就会为它分配原创 2020-07-13 16:31:09 · 286 阅读 · 0 评论 -
【编程基础】进程间通信(IPC)
进程间通信进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或者交换信息的过程。常见的方式有:管道(无名管道)、FIFO(命名管道)、消息队列、信号量、共享内存、Socket、Streams 等。其中 Socket 和 Streams 支持不同主机上两个进程之间的通信。管道管道通常指无名管道,是 UNIX 系统最古老的 IPC 形式。它具有以下特点:半双工:数据只能在一个方向流动,有固定的读端和写端。亲缘通信:只能用于具有亲缘关系的进程之间的通信,也原创 2020-07-13 16:28:40 · 2046 阅读 · 0 评论 -
【编程基础】锁机制与死锁
Linux 锁机制Linux 的内核锁主要是自旋锁和信号量。互斥锁 Mutex Lock互斥锁(Mutual-Exclude Lock)是最容易理解、使用最广泛的一种同步机制。使用互斥锁保护的临界区只允许一个线程进入,其他线程如果没有获取锁权限,就只能等候。int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); int pthread_mutex_destr原创 2020-07-13 16:26:44 · 541 阅读 · 0 评论
分享