自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP八股

当收到1001的ACK时, 就立即发送4001的数据包, 窗口为1001-5000, 窗口大小不变, 窗口右移。滑动窗口为1-4000, 大小为4000, 表示的含义是 发送1-4000的数据, 接收1-4000的ACK。有滑动窗口, 就是发送一批数据, 等待一批ACK, 把多次等待ACK的时间合并成一份, 所以更高效。如果发送方发送特别快, 接收方处理的慢, 缓冲区就会满, 如果再强行发送数据, 就会导致丢包。没有丢包, 说明网络通畅, 窗口指数增长, 以比较短的时间增长到较大的窗口。

2026-01-14 23:45:54 126

原创 HTTPS原理

HTTP 是明文传输HTTPS 只是在 HTTP 的基础上引入加密机制那 HTTPS 是如何加密的?

2025-12-17 22:33:43 706

原创 Spring Boot 项目 Lombok 配置的小坑记录

最近在用 Spring Boot 3.5.6 搭建项目,遇到了 Lombok 的一个问题。编译时一直报找不到 getter/setter 方法,Lombok 没有生效。把这段代码注释掉就行。

2025-10-04 16:04:40 125

原创 JVM--

Java 程序从.java文件编译为.class文件(存储在硬盘上),当运行 Java 进程时,JVM 需要读取.class文件内容并执行其中的指令。这个过程就是类加载- 将类的字节码从硬盘加载到内存中的元数据区,并创建对应的类对象。JVM 的垃圾回收机制通过可达性分析识别垃圾,采用分代回收策略结合多种算法,在开发效率与运行效率之间取得平衡。理解这些机制有助于编写更高效的 Java 程序并进行性能优化。

2025-09-22 01:57:42 979

原创 HTTP和HTTPS

HTTP(HyperText Transfer Protocol):应用层协议,主要用于客户端和服务器之间的数据传输。不仅能传输文本,还能传输图片、音频、视频及其他数据。最主流版本为HTTP/1.1,升级到 HTTP/2.0 兼容性成本较高。客户端发请求,服务器返回响应。User-Agent是 HTTP 请求头中的一个字段,简称UA。当前请求来自什么操作系统、什么浏览器、什么版本等详细信息。Cookie是浏览器为网站提供的一种“客户端存储数据”的机制。本质上是浏览器本地持久化存储的。

2025-09-21 21:19:08 1760 1

原创 TCP/IP

内核中的内存空间,每个 socket 对象都有一个接收缓冲区。类似阻塞队列:生产者-消费者模型。

2025-09-19 17:33:19 785

原创 网络编程-

短连接:适合低频、简单请求场景,易于实现但效率低。长连接:适合高频、实时通信场景,推荐用NIO等高效方式实现,能极大提升并发性能。短连接/请求型服务:可以用线程池(如),但要注意线程数量风险。高并发长连接服务:建议用IO多路复用技术,避免线程池资源耗尽。

2025-09-09 10:54:20 1027

原创 网络原理-

协议,就是在约定通信双方、交互数据的“规则”。协议确定了,双方就在一个频道上了,才能进行有意义的通信。

2025-09-06 17:51:19 891 1

原创 文件操作和IO

关于 InputStream 的实现类有很多,基本可以认为不同的输入设备都可以对应一个 InputStream 类。如果你希望\追加内容而不是覆盖,可以使用它的一个特殊构造方法(append)。使用字符流读取数据时,Java 标准库会自动根据数据的编码进行转码。InputStream 只是一个抽象类,要使用还需要具体的实现类。读取文件的两种方法.相比较而言,后一种的IO次数更好,性能更好.当用 char 表示汉字时,不再使用 UTF-8,而是使用。计算机中的输入输出,都是以 cpu 视角来谈的。

2025-09-06 12:09:03 856

原创 Java多线程进阶

CAS(Compare And Swap,比较并交换)是一种原子操作,用于多线程并发编程中保证数据安全。CAS通过比较内存中的数据和预期值,如果一致则更新,否则重试。CAS是实现原子操作的基础,广泛应用于Java并发包(如等)。CAS是“无锁”且高效的,但也有ABA问题等局限性。实际开发中,大多数情况下使用即可,简单且安全。适合需要更灵活锁操作的场景,如非阻塞尝试加锁、公平锁、复杂的等待通知机制等。使用ReentrantLock时,务必在finally块中释放锁,避免死锁风险。

2025-09-03 12:09:16 902

原创 Java多线程初阶

死锁指的是两个或多个线程在执行过程中,因争夺资源而造成一种互相等待的现象,导致所有线程都无法继续运行。内存可见性问题指的是在多线程环境下,一个线程对共享变量的修改,另一个线程无法及时“看到”最新的值,导致程序出现逻辑错误。单例模式是一种常用的设计模式,保证一个类在整个进程中只有一个实例。应用场景:配置信息管理器、连接池、日志系统等。基于数组实现循环队列。用保证线程安全。用waitnotify实现阻塞和唤醒。i < n;t.start();

2025-08-30 18:53:39 1013

原创 计算机系统基础与操作系统笔记

例如,在Windows环境下开发的程序,无法直接在Linux或macOS系统上运行。C++ 进行编程时高度依赖操作系统的原生 API,但对 Java 程序员来说不需要——JVM 包办一切了。现在最主要的进程间通信方式有且只有一个:通过网络(socket),这个是后续重点内容。PCB(进程控制块)是一个非常复杂的结构体,包含众多属性。:通过数据结构,把多个结构体串联起来,并进行增删改查。C++ 会讲得更多一些,Java就不做过多讨论了。:通过结构体/类,把进程的各种属性表示出来。的结构体来描述进程信息。

2025-07-31 16:49:04 911

原创 JDBC编程笔记

JDBC(Java Database Connectivity)是Java访问数据库的标准API。各数据库需提供兼容JDBC的驱动(如MySQL的mysql-connector)。使用JDBC,开发者只需学习一套API即可操作多种数据库。框架的本质是为了解决通用问题,提高开发效率。但开发者仍需掌握底层原理和操作,才能在遇到特殊场景时灵活应对。// 1. 创建数据源// 2. 建立连接// 3. 构建SQL// 4. 执行SQL// 5. 遍历结果集。

2025-07-30 21:19:46 494

原创 MySQL索引和事务笔记

索引是提升查询性能的利器,但需权衡空间和写入性能。B+树是数据库索引的核心结构,掌握其原理有助于面试答题和实际优化。事务保证数据可靠性,理解ACID和隔离级别是数据库开发的基础。索引和事务都需结合实际业务场景合理使用,避免过度依赖或滥用。

2025-07-30 21:18:35 906

原创 数据库初阶笔记

商业收费,功能强大,适用于数据极其重要、预算充足的大型企业提供完善的技术支持和服务,价格昂贵- 插入数据- 查询数据UPDATE- 修改数据- 删除数据注意:这四种操作有三种风格,不太科学的设定,接口风格不统一,使使用者学习成本增加。

2025-07-30 21:14:09 1053

原创 JavaLamdba表达式

/ 无返回值无参数// 无返回值一个参数// 无返回值多个参数// 有返回值无参数int test();// 有返回值一个参数// 有返回值多个参数Lambda可以理解为:Lambda就是匿名内部类的简化,实际上是创建了一个类,实现了接口,重写了接口的方法。@Override。

2025-04-23 14:36:55 1248

原创 Java枚举

枚举类型使用enum关键字定义。在这个例子中,Day是一个枚举类型,它定义了一周的七天作为常量。

2025-04-20 21:22:35 454

原创 Java反射

Java反射是一种用于在运行时动态地检查和操作类、接口、字段以及方法的机制。通过反射,程序可以在运行时获取关于类的详细信息,包括类的结构、方法、构造函数和字段等,并能够动态创建对象、调用方法和访问字段。反射使得Java程序更加灵活和动态,因为它允许程序在运行时处理未知的类和对象。

2025-04-19 23:30:56 919

原创 数据结构-Map和Set

哈希桶是哈希表中的一个重要概念,它是用来处理哈希冲突的机制之一。在哈希表中,哈希桶通常是指存储在特定哈希索引处的一个容器,用于存放所有映射到该索引的键值对。哈希表是一种数据结构,用于存储键值对(key-value pairs),它通过哈希函数将键映射到数组中的一个位置,以实现快速的数据存取。哈希桶在许多哈希表的实现中被广泛使用,尤其是在需要处理大量数据且存在高概率冲突的情况下。通过合理的哈希函数与哈希桶的设计,可以显著提高哈希表的性能和效率。它不允许重复的键,但可以有重复的值。它不保证元素的顺序。

2025-04-18 23:35:45 1140

原创 数据结构-八大排序

当增量为1时,进行一次标准的插入排序,此时整个数组已经基本有序,所以效率较高。

2025-04-18 12:05:09 1105

原创 数据结构-PriorityQueue

队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列。优先级队列中的元素按照优先级进行排序,具有更高优先级的元素会在队列中被优先处理。底层使用了堆这种数据结构,而堆实际就是在完全二叉树的基础上进行了一些调整。从堆的概念可知,堆是一棵完全二叉树,因此可以层序的规则采用顺序的方式来高效存储,注意:对于非完全二叉树,则不适合使用顺序方式进行存储,因为为了能够还原二叉树,空间中必须要存储空节点,就会导致空间利用率比较低。2.3 堆的创建2

2025-03-24 11:12:25 1103

原创 数据结构-二叉树

满二叉树和完全二叉树是二叉树的两种特定类型。二叉树的存储结构分为:顺序存储和类似于链表的链式存储。通过递归函数来创建二叉树,适合于根据特定规则生成树。手动创建二叉树可以直接定义节点,适合于小规模的树。

2025-03-23 10:56:06 990

原创 数据结构-Stack和Queue

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为。从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安 全的。它是一个基于数组实现的双端队列(Deque),可以高效地模拟栈的行为。在Java中,Queue是个接口,底层是通过链表实现的。

2025-03-22 10:08:12 777

原创 数据结构-LinkedList

Java中的LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节 点中然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。存储结构,数据元素的。

2025-03-21 20:26:03 293

原创 数据结构-ArrayList

线性表是一种在实际中广泛使用的数据结构,常见线性表:顺序表、链表、栈、队列…但是在物理上不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。底层是基于数组实现的,插入或删除元素时,所有后续元素需要整体移动,导致时间复杂度为 O(N)。增容时需要重新分配新空间,并将旧数组的数据拷贝到新数组中,这会带来性能开销。增容时容量通常增长为原来的 2 倍,会导致未使用的空间浪费。

2025-03-19 23:36:48 995

原创 Java数据结构相关知识

接口,或者需要多种排序方式时,可以使用。方法对对象集合进行排序。用于集合中对对象的排序。

2025-03-18 11:28:02 485

原创 Java泛型(Generics(

泛型(Generics)是 Java 中的一种特性,允许在类、接口和方法中定义类型和参数,从而实现参数的类型化。泛型的主要目的是提高代码的重用性和类型安全性。

2025-03-13 16:12:15 1147

原创 Java接口

java接口

2025-03-07 00:52:29 426

原创 INT301 Bio-Computation

自学笔记

2024-11-28 15:53:12 1018

原创 网络基础(1)

自学笔记

2024-04-25 14:14:43 1183

原创 Linux知识点(4)

Linux自学笔记

2024-04-14 20:13:56 1218

原创 Linux知识点(3)

Linux自学笔记

2024-04-10 17:14:16 1282

原创 编程细节和编码规范笔记

编程细节和编码规范笔记

2024-04-08 13:15:13 203

原创 Linux知识点(2)

Linux自学笔记(2)

2024-04-01 09:24:41 701

原创 Linux知识点

linux自学笔记

2024-03-21 09:55:53 861 1

原创 C++知识点(1)

自学笔记

2023-09-24 20:45:19 256

原创 INT201小豪的笔记

自学笔记

2023-09-23 19:06:11 555

原创 CPT205小豪的笔记

自学笔记

2023-09-23 18:59:33 689

原创 CPT203小豪的笔记

自学笔记

2023-09-23 18:55:16 867

原创 数据结构学习(用c语言实现)

数据结构自学笔记

2023-09-23 17:40:26 549

空空如也

空空如也

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

TA关注的人

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