自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络原理——初识网络

本文计算机网络的基础知识,主要包括网络发展历程、局域网和广域网的划分、网络通信基础(IP地址、端口号、协议和五元组)以及协议层次划分。

2025-11-01 22:23:11 847

原创 多线程 —— JUC 的常见类

目录1.Collable 接口1.1 Callable 的使用1.2 Callable 和 Runnable 的区别2.ReentrantLock2.1 ReentrantLock 的使用2.2 synchronized 和 ReentrantLock 的区别3.原子类4.信号量 Semaphore5.CountDownLatch6.多线程环境使用集合类6.1 多线程环境使用 ArrayList6.2 多线程环境使用优先级队列6.3 多线程环境使用哈希表★★★6.3.1 Hashtable6.3.2 Con

2025-10-24 13:57:05 720

原创 网络原理 —— HTTP协议

本文系统介绍HTTP/HTTPS协议的核心内容:1. HTTP基础:HTTP协议工作原理、报文结构(请求/响应)、请求方法(GET/POST)、状态码等核心概念。2. 实践操作:通过Fiddler抓包工具分析HTTP请求响应过程,演示URL结构、header字段、Cookie机制等关键要素。3. 请求构造。4. HTTPS安全:深入分析对称/非对称加密原理、中间人攻击风险以及数字证书的安全机制。

2025-10-23 10:13:44 957

原创 多线程——锁策略、锁优化、synchronized原理

本文系统介绍了常见的锁策略及其优化方法。主要内容包括:1.六种常见锁策略(悲观/乐观锁、重量/轻量级锁、挂起等待/自旋锁、互斥/读写锁、可重入/不可重入锁、公平/非公平锁);2.三种锁优化技术(锁升级、锁消除、锁粗化);3.synchronized 原理。

2025-10-20 15:43:55 707

原创 多线程 —— CAS 原理

本文主要介绍CAS。1)什么是CAS;2)CAS的应用(实现原子类和乐观锁);3)ABA问题;4)版本号机制。

2025-10-12 17:43:06 743

原创 多线程——定时器

本文介绍Java多线程中的定时器应用。首先讲解了标准库中的Timer类及其核心方法schedule的使用,通过设定延迟时间执行任务。最后实现一个简单的定时器:创建任务类封装执行逻辑和时间,使用优先级队列管理任务顺序,并通过额外线程和同步机制确保线程安全。

2025-10-09 21:22:47 1021

原创 线程池——线程池

本文主要讲线程池:1)线程池的引入;2)Java标准库中的线程池;3)ThreadPoolExecutor 构造方法和拒绝策略;4)实现一个简单的线程池

2025-10-06 22:18:13 914

原创 多线程——阻塞队列

本文介绍阻塞队列的设计模式及其实现。阻塞队列是一种线程安全的特殊队列,遵循先进先出原则,具有当队列满时阻塞入队、队列空时阻塞出队的特性。问题:为什么实现阻塞队列用 if 而不用 while 循环可能会导致虚假唤醒问题?

2025-09-30 09:53:44 941

原创 多线程——单例模式

本文介绍单例模式中的饿汉模式和懒汉模式实现方式。饿汉模式在类加载时就创建实例,线程安全但可能浪费资源;懒汉模式延迟实例化,需要解决线程安全问题。怎么解决这个线程安全问题?这里有小白都可以学会的将线程问题解决办法应用到单例模式中!!!

2025-09-24 19:56:14 1172

原创 多线程——wait 和 notify

本文介绍Java多线程中的wait()和notify()方法。两者必须配合同一锁对象使用,且wait()要先于notify()调用。文章还对比了wait()与join()、sleep()的区别,提供生活案例和代码案例分析,以及部分源码解读,适合初学者学习。

2025-09-21 15:41:01 951

原创 多线程——内存可见性问题和指令重排序问题(volatile详解)

本文探讨多线程环境下的两个典型线程安全问题:内存可见性问题和指令重排序问题。关键字volatile不保证原子性。

2025-09-19 19:39:57 624

原创 多线程——线程安全死锁问题

本文主要介绍Java多线程中的死锁问题。1)Java的可重入锁特性允许同一线程对同一锁多次加锁而不会死锁;2)两个线程两把锁;3)多个线程多把锁。文章还分析了死锁的四个必要条件:互斥、不可抢占、请求保持和循环等待。

2025-09-15 11:15:08 1041

原创 多线程——线程安全问题

本文主要介绍Java多线程中的造成线程安全问题的原因以及解决办法。1)一段非线程安全的代码 2)线程安全的理解 3)分析线程不安全的原因 4)如何解决线程安全 5)synchronized

2025-09-07 19:48:57 731

原创 多线程——线程状态

本文主要介绍Java线程的六种状态及其转换关系:1)NEW(新建未启动);2)RUNNABLE(可运行/执行中);3)BLOCKED(锁阻塞);4)WAITING(无限期等待);5)TIMED_WAITING(限时等待);6)TERMINATED(终止状态)。

2025-09-04 19:41:56 651

原创 多线程——线程的休眠、中断和等待

本文介绍Java多线程编程中的三个核心机制:线程休眠、线程中断和线程等待。

2025-09-01 13:11:40 1057

原创 认识多线程

本文从以下几个方面来介绍线程:1.线程的引入。2.如何理解线程?3为什么需要线程?4.线程和进程有什么区别?5.多线程之间如何相互影响?

2025-08-29 09:03:17 842

原创 多线程——认识Thread类和创建线程

本文介绍:1.Java如何定义多线程。2.线程的创建。3.线程的构造方法。4.Thread的常见属性。并提出线程状态、中断等概念,为后续深入学习多线程编程打下基础。

2025-08-24 15:22:32 1310

原创 进程和进程调度

本文主要介绍操作系统中的进程管理机制,进程是操作系统资源分配的基本单位,操作系统通过进程控制块(PCB)管理进程,以及进程调度的重要组成部分,包括状态、优先级、上下文保存和记账信息等核心概念,并以生活实例类比说明调度原理,深入浅出方便小白理解。

2025-08-21 19:14:42 1553

原创 数据结构——哈希表

本文主要介绍哈希表,哈希冲突。哈希函数的设计,负载因子和HashMap的部分源码解读。

2025-08-20 16:39:43 2706

原创 数据结构——TreeMap 和 TreeSet

TreeMap和TreeSet是基于红黑树实现的有序集合,分别用于存储键值对和键。使用时元素必须可比较,否则会抛出异常。

2025-08-17 12:16:52 978

原创 数据结构——Map 和 Set

Map和Set是两种用于搜索的数据结构。Map是Key-Value模型存储键值对,Key唯一而Value可重复;Set是纯Key模型。两者的区别主要是什么?

2025-08-12 12:27:11 1063

原创 数据结构——二叉搜索树 (Binary Search Tree)

二叉搜索树(BST)是一种具有特定性质的二叉树结构,其左子树节点值均小于根节点,右子树节点值均大于根节点。BST支持三种核心操作:(1)查找 (2)插入(3)删除,其中删除操作是难点,需要重点理解。所有操作的平均时间复杂度为O(logN),在最坏情况下(树退化为单支)时间复杂度为O(N)。BST的中序遍历结果是有序序列。

2025-08-11 12:15:07 1434

原创 数据结构——优先级队列(PriorityQueue):一文解决 Top K 问题!

文章介绍优先级队列和堆的相关概念及应用。堆是一种完全二叉树,分为大根堆和小根堆。PriorityQueue类及其特性,探讨如何用堆解决Top K问题:找前K个最小元素用大根堆,前K个最大元素用小根堆。最后提供求前K个最小元素的Java代码实现。

2025-08-09 17:31:21 1603 1

原创 数据结构——二叉树

从二叉树的概念、性质,到二叉树的遍历以及二叉树的创建理解!

2025-08-07 23:37:58 1218

原创 数据结构——栈和队列

栈和队列都是一种特殊的线性表。栈遵循后进先出的原则,只能在栈顶插入和删除操作,队列遵循先进先出的原则,普通队列只能在队尾插入在队头删除,而双端队列的队头和队尾都支持插入和删除操作。栈通常用顺序存储结构方式存储,因为数组的尾插效率高,而队列通常用链式结构方式存储,普通队列既可以用单向链表也可以用双向链表实现,循环队列用数组实现,并通常用牺牲一个单元存储来判断队列是否已满,双端队列通常用双向链表实现。

2025-08-07 19:40:41 1236

原创 数据结构——链表:一文彻底吃透链表底层原理!

本文介绍了链表数据结构及其实现方法。首先对比ArrayList的缺点引出链表优势,详细讲解了单向链表和双向链表的概念与8种分类。文章重点阐述了单向链表的实现(头插、尾插、指定位置插入、查找和删除操作)和双向链表的实现(增删操作需处理前后指针),并分析了循环链表的判环算法。最后对比了LinkedList与ArrayList的特性差异:LinkedList基于双向链表实现,适合频繁插入删除;ArrayList基于动态数组,适合随机访问。

2025-08-03 19:54:47 1386

原创 数据结构线性表的本质:为什么ArrayList用数组却比数组强大?(Java)

本文主要介绍线性表和顺序表的基本概念及其顺序表基本常用方法的实现。线性表是由相同数据元素组成的有限序列,支持顺序存储(数组)和链式存储。顺序表作为线性表的一种,采用连续的物理存储单元,支持随机访问。文章重点模拟实现了ArrayList的核心功能,包括增删查改等操作,并详细讲解了扩容机制、边界检查等关键技术点。最后对比ArrayList的三种构造方法和三种遍历方式,提出关于插入效率优化和空间浪费问题的思考。

2025-08-02 11:06:48 1290

原创 数据结构学习基础和从包装类缓存到泛型擦除的避坑指南

本文摘要: 本文系统介绍Java数据结构、包装类和泛型三大核心概念。数据结构部分阐述了数据元素组织方式、算法效率评估(时间/空间复杂度)及大O表示法。包装类章节解析了基本类型与对象类型的转换机制、自动装箱拆箱原理及使用注意事项。泛型内容涵盖泛型类定义与使用、类型擦除机制,以及通配符(无界、上界、下界)的适用场景,强调其在编译时类型安全中的作用。全文通过代码示例和理论结合的方式,为Java集合框架的学习奠定基础,重点突出了类型系统在程序设计中的关键作用。

2025-08-01 17:14:36 1317

原创 小白如何认识并处理Java异常?

本文系统介绍Java异常处理机制。首先阐述了异常的概念及其必要性,指出异常处理能预防错误、优雅降级和明确反馈问题原因。接着讲解了异常体系结构,区分Error和Exception两类,并将异常分为受检查异常(如IOException)和非受检查异常(如NullPointerException)。重点分析了异常处理方式,比较了LBYL和EAFP两种策略,详细说明了5个关键字的用法:throw抛出异常、throws声明异常、try-catch捕获处理异常、finally确保资源清理。最后演示了自定义异常类的实现。

2025-07-25 22:38:11 1126

原创 如何学习Java的String类?(超全详解)

分析:对于引用类型变量,== 比较两个变量引用是否指向同一个对象,很明显 str1 和 str2 肯定不会指向同一个对象,因此 str1 == str2 输出 false,str3 直接指向 str1 所指向的对象,因此 str1 == str3 输出 true,而 str1和str4 是两个不同的 "hello" 对象,因此 str1 == str4 输出 false。可以看到,在array这个数组中,每一个字符对应一个地址,而str的value的每一个元素则对应array数组的每一个字符的地址。

2025-07-21 17:38:25 2609

原创 Java接口:小白如何初步认识Java接口?

但不提供具体实现。也就是是这。

2025-07-16 20:21:16 682

原创 Java为什么要有抽象类?

所以,当在写代码的时候,不小心当成父类使用,则在使用抽象类之后,系统会编译错误,这就。前文提到:抽象类自己本身不能被实例化,如果想使用,则必须创建该抽象类的子类, 然后让子类重写该抽象类的抽象方法。抽象类必须要被继承,并且继承之后的子类要对父类(抽象类)的抽象方法进行重写,否则子类也是抽象类,而且必须要被。抽象类本质上也是类,因此可以有自己的普通成员变量和普通成员方法,因此抽象类不一定包含抽象方法。父类Animal类提供的方法是没有意义的,其叫声并不能用来描述是哪个具体的对象的动物正在叫。

2025-07-12 15:04:40 827

原创 Java多态(超全详解版)

在测试类中,创建的第一个MathTeacher类对象,并赋值给Teacher类,创建的第二个MathTeacher类对象,赋值给MathTeacher类本身,这两种实例化的过程,第一就是向上转,第二种就是正常实例化。重写、是子类对父类的非静态、非final修饰、非private修饰、非构造方法等实现过程的方法进行重写,重写的方法返回值类型、方法名、形参都不能改变,并且重写的方法权限范围不能小于被重写的方法。:方法在调用时会根据对象类型来决定,也就是虽然引用的是父类引用,但实际实现的方法却是子类的。

2025-07-11 20:50:02 1155

原创 Java继承全解析(超详解版

这是因为:在了解继承的概念并通过例子发现,在子类对象中的成员实际上是由两部分组成,继承父类的成员和自己新增加的成员,所以在构造子类对象的时候,先要调用父类的构造方法,讲父类继承下来的成员构造完整,然后再调用子类自己的构造方法,将子类自己新增加的成员初始化完整。假设有两种动物,分别是猫和狗,可以将其定义为两个类,一个类是猫,一个类是狗,猫可以有自己的名字、年龄、体重等,和一些行为正在吃饭、正在喵喵叫~~~等,狗也可以有自己的名字、年龄、体重,和一些行为正在吃、正在汪汪叫~~~等。可以在不同的包中的子类使用。

2025-07-11 14:06:00 2221

原创 解密Java类和对象:为什么90%的新手都误解了this和构造方法?

本文介绍了Java面向对象编程(OOP)的核心概念。主要内容包括:1. 类和对象的基本概念,对比面向过程和面向对象编程范式;2. 类的定义格式,包含成员变量和方法;3. 类的实例化过程及this引用的使用;4. 构造方法的特性和重载;5. 封装的概念及访问修饰符的应用;6. static关键字的作用,包括静态成员变量和方法的特性;7. 包(package)的组织方式及其访问权限控制。文章通过实例代码详细讲解了如何定义类、创建对象、实现封装等面向对象的基本操作,为理解Java面向对象编程提供了基础框架。

2025-07-08 17:03:39 1087

原创 C语言数组详解:新手避坑指南,老手进阶必备!

类型 数组名[常量表达式](1)类型指的是C语言数据类型,可以是char,short,int,float等(2)数组名的命名规则与变量名相同,遵循标识符命名规则(3)[ ] 中的常量表达式是常量或符号常量,如“int a[3]”或“int a[3+4];”都是正确的。但是它不能是变量,否则不合法。并这个常量表达式的大小是用来指定数组的大小,其大小可以根据实际需求而定。

2025-07-04 21:44:05 1312

原创 C语言函数:函数递归详解(递归太难理解?用经典案例之[青蛙跳台阶]和[汉诺塔]问题例彻底掌握C语言递归)

在,简单说就是,把一个大型复杂的问题层层转化为一个与原问题相似但规模较小的简单的子问题,直到子问题不能再被转化为止,这就是函数递归。调用方式是不是如下图所示呢?在这里可以结果会是什么呢?这里也没有结束的条件,是无限打印还是只打印几行呢?显然,当我们运行时,会发现它只打印几行,并且出现如下异常,这就是。在了解函数递归的概念之后,我们先来了解一下什么叫栈溢出?是由于程序在栈上使用的内存超过其分配空间而导致的错误。

2025-06-30 14:01:34 1427

原创 C语言函数(教你如何从零开始学C语言函数)

虽然已经有了很多的库函数,但它并不能帮助我们解决所有的问题。这时,就需要程序员自己定义一个函数。这为程序员写代码时创造了很大的发挥空间。自定义函数和库函数一样,要有返回类型,函数名和函数参数。如果函数类型是void,则表示什么都不返回。函数类型 函数名(函数参数)//代码实现比如,写一个代码,用函数实现当输入两个整数时,求这两个整数的积并打印出来。get_Mul便是我们自定义的函数名,函数参数分别是x和y,两个数的乘积结果是一个数值,所有返回类型是int。return x*y;

2025-06-28 14:07:58 988

原创 初探C语言世界:分支和循环

目录1.C语言结构1.1 分类1.2 语句2.if分支语句2.1 if语法结构2.2 else2.3 多分支 if2.4嵌套 if2.5 悬空else问题2.6 实战练习3.switch分支语句3.1 语法结构3.2 break3.3 default4.while循环语句 4.1 语法结构4.2 while语句中的continue和break4.3 实战练习5.for循环语句 5.1 语法结构5.2 实战练习 6.do-while循环语句6.1 语法结构6.2 实战练习7.循环语句 for,while ,d

2025-06-21 14:25:11 1213

原创 初探C语言世界:一名编程新手的自学成长日志

大家好,我是刚学习C语言的菜鸟,一个彻头彻尾的编程菜鸟,从今天开始正式自学学习编程,在这里真实记录从零开始的探索过程。记录原因有二:一是好记性不如烂笔头,通过记录给自己做一个笔记总结,方便日后复习,二是希望和我一样的初学者一起探索进步。因为是从零开始自学,难免会存在错误或者片面理解的地方,如果有幸能得到各位前辈的指点,我将不胜感激!

2025-06-19 12:10:12 1125 1

空空如也

空空如也

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

TA关注的人

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