enyang

Archives

2025 / 12

SOLID 五原则用于指导面向对象设计,目标是让系统: 更易扩展(Extensible) 更易维护(Maintainable) 更易测试(Testable) 更松耦合(Loosely Coupled) 更清晰(Clean & Understandable) SOLID 包含五条原则: S — 单一职
1 synchronized 的三种使用方式 synchronized 是 Java 最基础、最安全的同步方案,它使用 对象内置锁(Monitor Lock) 来保证多个线程访问临界区时的互斥性。 1.1 修饰实例方法 写法: public synchronized void m() { c
1 线程安全与同步机制 线程安全是指在多线程环境下,多个线程对共享资源进行访问时,不会发生数据不一致或竞争条件的现象。为了保证线程安全,通常需要通过同步机制来控制对共享资源的访问,确保在任何时刻只有一个线程能访问该资源。 1.1 线程安全的定义 线程安全指的是在多线程并发执行的情况下,多个线程对同一
1 Java 内存模型(JMM)与可见性 Java 内存模型(Java Memory Model,简称 JMM)是 Java 为了保证多线程程序中线程间共享变量的可见性、原子性和有序性而设计的一套规范。JMM 定义了多个线程共享数据时如何在不同的线程之间传递变量的值,以及哪些操作可以在多线程环境下被
1 什么是进程与线程 1.1 进程(Process) 1.1.1 进程的定义 进程是操作系统进行资源分配的基本单位。当一个程序被启动后,操作系统会为这个程序分配独立的系统资源,这些资源包括内存空间、文件句柄、网络端口等。 例如:运行一段 Java 程序时,启动 Java 虚拟机(JVM),JVM 就

2025 / 11

1. 题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它
1 栈的定义 1.1 什么是栈(Stack) 栈是一种 后进先出(LIFO, Last In First Out) 的线性数据结构。 插入和删除操作都发生在同一端,称为 栈顶(Top)。 另一端称为 栈底(Bottom),保持不动。 1.2 栈的特点 只能在栈顶进行操作。</
1 链表的定义 1.1 什么是链表 链表(Linked List)是一种非连续存储的数据结构,由若干节点通过指针连接组成。 每个节点通常包含两部分: 数据域(Data):存储节点数据。 指针域(Next):存储指向下一个节点的引用。 在 Java 中,一个单向链表节点可以定义为: class Nod
1. 数组的定义 数组 是一种线性数据结构,它包含一个固定大小的、相同类型的元素集合。数组通过一个单一的名字来访问,并且元素通过索引来进行定位。每个数组都有一个特定的大小,一旦创建,大小不可改变。 内存模型:数组是一个连续的内存空间,元素按顺序排列。 特点: 固定大小:数组创建时必须指定大小,不能动

2025-11-23

Git 是一个 分布式版本控制系统,它的核心思想是允许每个开发者在本地管理整个项目的完整版本历史,而不仅仅依赖于中央服务器。这样,Git 提供了非常强大的版本管理和团队协作能力。 1. 版本控制 Git 主要用于记录和管理文件的变更,它将每次文件的修改保存为一个 提交(Commit)。这些提交是一个