自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 Java中阻塞队列详解

使用 BlockingQueue 可以极大简化实现:生产者调用 put(),消费者调用 take(),阻塞机制自动处理同步。传统实现需要使用 synchronized、wait() 和 notify() 来手动控制满/空状态,代码复杂且易出错。这使得阻塞队列特别适合多线程环境下的数据交换,避免了忙等待(polling)和手动同步的麻烦。阻塞队列是线程安全的,所有操作都使用内部锁(如 ReentrantLock)实现原子性。阻塞队列是一种特殊的队列,它在普通队列的基础上增加了。

2025-12-24 16:37:35 783

原创 Java多线程--单例模式

类加载的同时,创建实例二、懒汉模式-单线程版类加载的时候不创建实例,第一次使用的时候才创建实例三、懒汉模式-多线程版上面的懒汉模式的实现是不安全的加上synchronized可以改善这里的线程安全问题

2025-12-24 14:46:02 69

原创 Java 多线程基础:synchronized、volatile 与 wait/notify 详解

synchronized 是 Java 中最基本的同步机制,用于确保线程安全。它可以修饰方法或代码块,防止多个线程同时访问共享资源导致的数据不一致。

2025-12-20 11:11:52 848

原创 理解线程不安全:从观察到原因分析

指令重排序是指程序代码在源代码中的书写顺序,与实际执行时的顺序不一致的现象。这不是bug,而是为了优化执行效率而设计的特性。在Java中,这与Java内存模型(Java Memory Model,JMM)密切相关。JMM定义了线程如何通过内存交互,包括可见性、原子性和有序性(ordering)。有序性问题正是由指令重排序引起的。

2025-12-17 17:56:24 401

原创 Java 线程状态详解:从观察到理解

在 Java 中,线程的状态是由 Thread.State 枚举定义的,一共有 6 种状态。这些状态代表了线程从创建到销毁的各个阶段。我们可以通过 Thread.getState() 方法来获取当前线程的状态。

2025-12-16 19:10:23 571

原创 Thread类及常见方法

这会创建一个默认的线程对象,没有指定要执行的任务通过传入一个 Runnable 接口的实现类来指定线程要执行的任务创建线程并指定线程名称,便于调试和日志记录同时指定任务和名称。

2025-12-14 07:34:34 372

原创 多线程--认识线程

线程(Thread)是程序执行的最小单位,它是进程中的一个独立执行流。我们可以把进程想象成一个正在运行的应用程序(比如微信、浏览器),而线程就是这个应用程序中具体干活的 “工人”—— 一个进程中可以包含多个线程,这些线程共享进程的资源(如内存空间、文件句柄等),同时各自拥有独立的程序计数器、栈空间,能够并发执行不同的任务。​简单来说,线程就是 “轻量级的进程”,它的创建和销毁成本远低于进程,是实现并发编程的核心载体。

2025-12-11 17:14:40 704

原创 MySQL 进阶操作大全:约束规则、表设计逻辑与高级查询代码总结

1. 数据库约束约束类型语法代码示例代码非空约束字段名 数据类型 NOT NULL唯一约束字段名 数据类型 UNIQUE默认值约束字段名 数据类型 DEFAULT 默认值gender CHAR (1) DEFAULT ' 未知'主键约束(自增)字段名 数据类型 PRIMARY KEY AUTO_INCREMENT外键约束FOREIGN KEY (子表字段) REFERENCES 父表 (父表字段) [ON DELETE 动作]检查约束字段名 数据类型 CHECK (条件)

2025-11-28 09:57:49 550

原创 MySQL 数据增删改查(CRUD):基础语法总结与示例

1. 新增(Create)操作类型语法代码单行全列插入INSERT INTO 表名 VALUES (值1, 值2, ..., 值n);多行指定列插入(推荐)INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1组), (值2组), ...;2. 查询(Retrieve)操作类型语法代码全列查询SELECT * FROM 表名;指定列查询SELECT 字段1, 字段2, ... FROM 表名;字段为表达式查询。

2025-11-27 17:05:28 1000

原创 MySQL数据库基础

1.-- 显示-- 创建-- 使用use xxx;-- 删除2.常用数据类型:INT:整型:浮点数类型:字符串类型TIMESTAMP:日期类型3.-- 查看show 表;-- 创建create table 表名(字段1 类型1,字段2 类型2,...-- 删除drop talbe 表名;

2025-11-22 19:52:22 988

原创 计算机是如何工作的?

我们先区分两个易混淆的概念:​程序:静态的指令集合(比如电脑里的Chrome.exe文件),是存放在磁盘上的 “死代码”;​进程:程序被加载到内存后,正在执行的动态实例,是 OS 资源分配的基本单位。​举个例子:你双击 Chrome 图标,OS 会把Chrome.exe的代码加载到内存,创建一个 “Chrome 进程”—— 这个进程会占用 CPU 处理网页渲染、网络请求,占用内存存储页面数据。

2025-11-11 17:20:52 751

原创 java数据结构--Map和Set

搜索树(如红黑树)能够保持元素的有序性,支持范围查询,时间复杂度稳定在 O (log n)哈希表在平均情况下提供 O (1) 的时间复杂度,但不保证元素有序,最坏情况下性能下降Java 集合框架巧妙地将这些数据结构应用到Map和Set需要有序集合时,选择TreeMap或TreeSet需要高效的插入、查找和删除时,选择HashMap或HashSet理解这些数据结构的原理和实现,有助于我们在实际开发中选择合适的集合类,编写更高效的代码。

2025-11-05 11:41:54 920

原创 java数据结构--LinkedList与链表

ArrayList 和 LinkedList 各有优劣,选择时需根据业务场景权衡:若以查询为主,优先用 ArrayList;若以增删为主(尤其是中间位置),则选 LinkedList。理解两者的底层结构是掌握其特性的关键,也是写出高效代码的基础。

2025-10-22 20:05:36 839

原创 java数据结构--ArrayList与顺序表

ArrayList 是 Java 集合框架中 List 接口的一个实现类,本质上是一个动态数组。与普通数组相比,它的容量可以动态增长,无需在创建时就确定大小,极大地提升了使用的灵活性。ArrayList 的底层是用数组实现的,当元素数量超过当前容量时,会自动进行扩容操作。它允许存储 null 值,也允许存储重复元素,并且是有序的(存储顺序与插入顺序一致)。需要注意的是,ArrayList 不是线程安全的,在多线程环境下使用需要额外处理线程安全问题(可以使用方法包装,或使用。

2025-10-20 20:42:05 1000

原创 java数据结构--List的介绍

在 Java 中,List是java.util包下的一个,继承自Collection接口,是 Java 集合框架的重要组成部分。它用于存储,允许通过索引(位置)访问元素。

2025-10-16 18:15:49 416

原创 java数据结构--认识泛型

一般的类和方法,只能使用具体的类型要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。-----来源《Java编程思想》对泛型的介绍。泛型是在JDK1.5就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化。

2025-10-15 22:39:01 757

原创 java数据结构--时间和空间复杂度

下面求斐波那契数列的算法好还是不好,为什么?该如何衡量一个算法的好坏呢?

2025-10-14 22:20:42 753

原创 java数据结构--初识集合框架

数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。算法就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。

2025-09-01 15:44:00 284

原创 java数据结构--排序

1.快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序2.时间复杂度:O(N*logN)3.空间复杂度:O(logN)4.稳定性:不稳定1.归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。2.时间复杂度:O(N*logN)3.空间复杂度:O(N)4.稳定性:稳定。

2025-08-29 17:26:10 1034 2

原创 java数据结构--优先级队列(堆)

创建一个空的优先级队列,默认容量是11。

2025-08-20 22:45:49 886

原创 java数据结构——二叉树

树是一种的数据结构,它是由nn>=0)个有限结点组成一个具有层次关系的集合。。它具有以下的有一个特殊的结点,称为根结点,根结点没有前驱结点除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1T2......Tm,其中每一个集合m)又是一棵与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继树是递归定义的。:一个结点含有子树的个数称为该结点的度;如上图:A的度为6:一棵树中,所有结点度的最大值称为树的度;如上图:树的度为6:度为0。

2025-08-20 16:52:08 595

原创 java数据结构——Stack和Queue

进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。那就说明元素可以从队头出队和入队,也可以从队尾出队和入队。,进栈过程中可以出栈,则下列不可能的一个出栈序列是()依次入栈,然后再依次出栈,则元素出栈的顺序是( )。)是指允许两端都可以进行入队和出队操作的队列,只允许在固定的一端进行插入和删除元素操作。:栈的删除操作叫做出栈,出数据在栈顶。一个栈的初始状态为空。出队列:进行删除操作的一端称为。:一种特殊的线性表,其。

2025-08-10 23:24:05 668

原创 JavaSE——总结

运算符是计算机的最基本的用途之一就是执行数学运算。3.2.算术运算符基本四则运算符:加减乘除模(+-*/%)。增量运算符自增自减运算符:++ --1.当代码规模比较复杂的时候能够模块化的组织代码。2.做到代码被重复使用一份代码可以在多个位置使用。3.让代码更好理解更简单。4.直接调用现有方法开发。5.2.方法的定义// 方法定义修饰符 返回值类型 方法名称([参数类型 形参 ...]){方法体代码;[return 返回值];1.修饰符:现阶段直接使用固定搭配。2.

2025-05-06 19:53:51 691

原创 Java--认识异常

在 Java 里,自定义异常类指的是开发者依据自身需求创建的异常类。Java 本身提供了很多内置异常类,像等,不过在实际开发时,有时内置异常类无法精准描述特定的异常状况,这时就需要自定义异常类。自定义异常类需继承Exception(受检查异常)或者(非受检查异常)。一般而言,若希望调用者必须处理异常,就继承Exception;若不强制要求调用者处理异常,可继承。

2025-04-20 17:33:40 849

原创 java——String类型

两个String类的对象不能直接用==号相比较,因为用==比较的是两个对象的地址,而我们大多数都要比较两个对象的内容是否相等。: 返回从指定索引开始向前搜索时,指定子字符串在字符串中最后一次出现处的索引。如果找不到子字符串,则返回-1。: 返回从指定索引开始搜索时,指定子字符串在字符串中第一次出现处的索引。: 返回从指定索引开始向前搜索时,指定字符在字符串中最后一次出现处的索引。: 返回从指定索引开始搜索时,指定字符在字符串中第一次出现处的索引。返回一个新的字符串,其中包含字符串缓冲区中指定范围内的字符。

2025-03-26 00:19:27 1262

原创 Java——图书管理系统

图书管理系统大致可以拥有查看书籍、借书、还书和对书进行修改等操作,服务对象有管理员和普通用户。我们知道这些就可以开始写了。

2024-11-14 22:26:42 719

原创 java基础——clone方法

但是我们发现还是报错,仍然无法调用Object下的clone方法,这里我们会发现我们的Person类是Object类的子类,以子类来调用父类的方法,我们需要强转为Person类。当我们创建一个Person类并在实例化Person调用clone方法时报错了,这是因为我们需要重写Object类的clone的方法,并且还要修改一下main方法的格式。这就是浅拷贝,浅拷贝只复制某个对象的地址而不复制对象本身,所以无法改变person中的m值,我们这时候就需要在clone类中克隆money。

2024-10-24 22:23:30 351

原创 Java基础——继承和多态

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作。总的来说:同一件事情,发生在不同对象身上,就会产生不同的结果。

2024-10-11 18:14:07 1147

原创 Java基础——类和对象

类中包含成员变量和成员方法。//成员变量System.out.println(this.name+"正在读书...");System.out.println(this.name+"正在上课...");//成员方法采用Java语言将洗衣机类在计算机中定义完成,经过javac编译之后形成.class文件,在JVM的基础上计算机就可以识别了。构造方法也称为构造器是一个特殊的成员方法,名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。

2024-07-12 23:42:24 1179

原创 C语言编译和链接

翻译环境:在这个环境中源代码被转换成可执行的二进制指令运行环境:实际执行代码。

2024-04-14 21:05:43 421 1

原创 C语言文件操作

存放在磁盘上的文件就是文件,我们一般分为程序文件和数据文件。

2024-04-14 20:42:09 273 1

原创 C语言---结构体

int num;//学号为整型//姓名为字符串char sex;//性别为字符型int age;//年龄为整型//成绩为实型//地址为字符串。

2024-03-26 20:51:57 603

原创 整数和浮点数在内存中存储

整数的存储在计算机中,整数通常以二进制形式存储。整数的存储方式取决于计算机的体系结构,一般有两种表示方式:有符号整数和无符号整数。有符号整数(signed):有符号整数使用固定数量的位来表示整数值,其中最高位通常用来表示符号位(0表示正数,1表示负数)。常见的有符号整数表示方式是补码形式。在补码表示中,正数的二进制形式与其真值相同,而负数的表示方式是将其绝对值的二进制形式取反加一。无符号整数(unsigned):无符号整数只表示非负整数,因此没有符号位。

2024-03-26 17:58:48 439

原创 【C语言 strlen函数、strcpy函数 、strcat函数 、strcmp函数 、strstr函数 、strncpy函数 、strncat函数 、memcpy函数 、memmove函数模拟实现】

【代码】【C语言 strlen函数、strcpy函数 、strcat函数 、strcmp函数 、strstr函数 、strncpy函数 、strncat函数 、memcpy函数 、memmove函数模拟实现】

2024-03-19 20:35:43 180

原创 C语言指针(深入了解指针)

有人曾说过不会指针等于没有学习c语言,而我也是非常认同这个观点的,要想学习好c语言,指针是比不可缺少的,如果指针学不会c语言也就没办法学好,而向如此越重要的东西越比较难学,但难学并不代表学不会,这片文章将由简单到复杂让你深刻的了解指针,从此不再害怕指针的学习。

2024-03-07 17:56:29 702 1

原创 C语言--扫雷游戏代码

我们只需要把全是'*'的棋盘展现给玩家。

2024-01-25 19:39:51 322

原创 C语言分支循环语句

while循环是先进入判断表达式判断为真,执行语句,如果为假跳出循环,也可以通过break语句直接跳出循环,判断条件至少要执行一次。for循环是先执行初始化部分(只会被执行一次),再执行判断部分,然后执行循环语句,最后执行调整部分。do while循环是先执行循环语句,之后在进入调整部分,最后进入判断语句,循环体至少要执行一次。if括号里的表达式是指是一个有值的式子,如果条件成立,要执行括号里的多条语句.但是if只能判断一个语句,这时我们应该用到switch语句,它更适用多分支。

2023-12-03 17:04:44 97 1

原创 双非本科的计算机没前途吗

我是一名计算机专业的大一新生,因为高考分数不理想的原因,我只读了一个介于二本和一本之间的专业,但是我是因为对计算机感兴趣才要学习计算机的,况且计算机对于现在的社会而言也是热门的专业,未来就业都占有很大的优势。Java或者是python等等,这个应该是根据自己的实际情况来确定的。像我们本身就是计算机专业的学生,我们应该适当的减少其他学科学习的时间,把更多的时间放在自己的专业上,向着自己喜欢的方向努力奋斗,相信自己,我们不比任何一个人差,过去的就让它过去好了,做好现在的自己,加油!

2023-11-21 21:05:35 315 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除