- 博客(54)
- 收藏
- 关注
原创 maven运行时报“找不到或无法加载主类 ”的异常
第四步:搜索并点击mvn compile。第三步:搜索并点击mvn clean。第一步:点开maven菜单。第二步:查找maven工具。然后就可以正常运行啦~
2025-11-22 23:30:07
110
原创 【JavaEE初阶】JVM-垃圾回收机制(高频面试题)
本文介绍了垃圾回收(GC)机制,重点分析了Java中的实现方式。主要内容包括:1)GC通过自动内存管理避免了手动释放的麻烦;2)Java采用可达性分析算法,通过GCRoots遍历对象图来识别垃圾;3)内存释放策略包括标记-清除、复制算法、标记-整理和分代回收;4)Java的分代回收将堆分为新生代和老年代,采用不同回收策略;5)GC虽提高了开发效率,但存在STW问题影响性能。文章对比了不同语言的GC实现,解释了C++拒绝GC的原因,并详细阐述了JavaGC的工作原理和优化思路。
2025-11-21 10:37:59
861
原创 【JavaEE进阶】JVM-面试中的高频考点1
JVM关键知识点摘要: 内存区域划分: 程序计数器:记录指令位置 元数据区:存储类信息 栈:方法调用关系 堆:存储对象实例 类加载机制: 五大步骤:加载、验证、准备、解析、初始化 双亲委派模型:Bootstrap→Extension→Application类加载器的层级委派机制 懒加载特性:按需加载类 面试重点: 包括内存区域划分、类加载机制和垃圾回收 (未展开垃圾回收部分) 注:JVM设计参考了操作系统内存管理, 各区域功能明确,类加载保证安全性。
2025-11-19 21:54:46
817
原创 【JavaEE初阶】IP协议-路由选择
本文系统介绍了以太网协议的核心内容。首先阐述了以太网作为数据链路层和物理层的协议特点,以及MAC地址的属性和应用场景。接着分析了IP地址与MAC地址的区别:IP负责网络层的全局路由,MAC则处理数据链路层的相邻设备间传输。文章详细解释了IP数据报拆包的原因(受限于以太网1500字节的帧大小限制)和ARP协议的作用(将IP地址解析为MAC地址)。最后介绍了DNS域名解析系统的工作原理和优化策略,包括本地缓存机制和分布式DNS服务器架构。全文通过生动的网络传输实例,深入浅出地解析了计算机网络基础协议间的协同工作
2025-11-19 11:20:53
817
原创 【JavaEE初阶】IP协议-IP地址不够用了咋办?
本文主要讲解了IP地址不够用了的两种解决方式、NAT 网络地址转换、IP地址两中分类、外网和内网的区别以及NAT背景下,网络通信是如何进行的
2025-11-13 16:39:48
511
原创 【JavaEE初阶】网络层-IP协议
摘要:IP协议作为网络层核心协议,主要实现地址管理和路由选择功能。其报文结构包含版本号、首部长度、服务类型、总长度等字段,支持最大64KB数据包的拆包组包传输。关键特性包括16位标识符、3位标志位和13位片偏移实现数据重组,TTL机制防止数据包无限传输,以及32位IP地址表示(IPv4)。当前IP地址短缺问题通过动态分配和NAT机制解决。该协议为上层网络通信提供基础支持,理解其工作原理对网络开发具有重要意义。
2025-11-12 10:39:47
634
原创 【JavaEE初阶】TCP协议看这一篇就够了,包会的!
本文详细介绍了TCP协议的10大核心机制:1. 确认应答和超时重传构成可靠传输基础,通过序号和ACK确保数据正确接收;2. 连接管理通过三次握手建立连接(验证通信能力、协商初始序号)和四次挥手断开连接;3. 滑动窗口机制实现批量传输以提高效率;4. 流量控制根据接收方处理能力动态调整窗口;5. 拥塞控制通过实验性调整找到最优传输速率;6. 延时应答和7. 捎带应答进一步优化传输效率;8. 面向字节流特性带来的粘包问题需应用层解决;9. 异常处理机制处理各种故障情况。这些机制共同保证了TCP的可靠性,同时尽可
2025-10-30 18:38:38
1105
3
原创 【JavaEE初阶】TCP核心机制10——异常情况的处理
摘要:本文分析了TCP连接在不同异常情况下的处理机制。当进程崩溃时,系统会完成四次挥手释放连接;主机关机时若未完成挥手,对方会主动放弃连接;主机掉电分为接收方和发送方两种情况,分别通过超时重传和心跳包机制进行检测处理;网线断开则综合以上情况。TCP通过FIN重传、RST复位、心跳包等机制确保异常情况下的连接释放,其中应用层常自行实现秒级心跳包以快速检测分布式系统中的节点故障。
2025-10-30 17:35:11
504
原创 【JavaEE初阶】TCP核心机制9——面向字节流
TCP传输存在粘包问题,由于字节流传输特性,接收方难以区分数据包边界。与UDP每个数据包独立传输不同,TCP需要在应用层通过分隔符或长度标识来解决该问题。常见解决方案包括:1)使用特定分隔符标记包结束;2)在包头设置长度字段。这些方法确保数据包能被正确解析,避免因边界模糊导致的程序错误。
2025-10-30 16:22:14
210
原创 【JavaEE初阶】TCP核心机制8——捎带应答
摘要:TCP协议在延时应答机制基础上引入了"捎带应答",即在返回业务数据时顺便携带上次的ACK确认信息。这种方法通过让ACK等待,与应用程序响应一同返回,优化了网络传输效率。该机制简单易理解,有效减少了单独的ACK报文传输。(92字)
2025-10-30 11:02:53
111
原创 【JavaEE初阶】TCP核心机制7——延时应答
摘要:TCP协议延时应答机制通过延迟ACK返回时间来提高传输效率。该机制分为数量限制(每N个包应答)和时间限制(超时应答),可根据数据传输密度选择使用。延时应答能增大窗口尺寸,减少ACK等待时间,虽非绝对有效,但经验证能提升性能。该机制不影响可靠性,因后续ACK可确认先前数据。
2025-10-30 10:37:31
203
原创 【JavaEE初阶】TCP的核心机制6——拥塞控制
本文介绍了网络传输中的流量控制和拥塞控制机制。流量控制基于接收方的处理能力,通过缓冲区空间限制发送速率;拥塞控制则依据链路转发能力,动态调整发送窗口大小。两种控制机制遵循"木桶原理",以较小的限制值为准。拥塞控制采用实验性方法,通过观察丢包情况动态调整发送速率:顺利时增大窗口,丢包则减小窗口,实现网络状态的动态平衡。文章最后预告将讲解TCP延时应答机制。
2025-10-29 22:07:18
162
原创 【JavaEE初阶】TCP核心机制5——流量控制
本文摘要:文章介绍了TCP协议中的滑动窗口机制及其相关概念。滑动窗口大小影响传输效率,但受限于接收方处理能力。流量控制通过动态调整窗口大小来调节发送速度,确保接收方处理能力不被超过。详细说明了TCP报头中与窗口相关的指标,区分了缓冲区(buffer)和缓存(cache)的不同用途。最后指出窗口探测和拥堵控制机制的重要性,为后续内容做铺垫。文章以轻松的语气(✿✿ヽ(°▽°)ノ✿)总结了TCP协议中关键流量控制机制的工作原理。
2025-10-29 21:48:28
253
原创 【JavaEE初阶】TCP核心机制4——滑动窗口
TCP的前三个机制(确认应答,超时重传,连接管理)都是为了保证可靠性,但是,每传输一个数据都要等对方应答(效率低下)那我们直接批量传输不就行了嘛!
2025-10-29 17:22:17
215
原创 【JavaEE初阶】网络经典面试题小小结
本文摘要回顾了HTTP安全机制、UDP特性和TCP核心功能。TCP通过确认应答和超时重传保证可靠传输,其中三次握手建立连接(验证能力、协商初始序号),四次挥手释放连接。重点解析了TIME_WAIT(确保最后ACK送达)和CLOSE_WAIT(等待应用关闭)状态,并指出三次握手仅用于连接建立,后续数据传输可靠性仍依赖应答/重传机制。最后提及连接异常处理及常见面试考点。
2025-10-29 09:38:00
440
原创 【JavaEE初阶】TCP核心机制3——连接管理
TCP连接管理包括建立和断开连接两个核心操作。建立连接通过三次握手实现:1)确认网络通畅;2)验证双方收发能力;3)协商初始序号等关键信息,避免新旧连接混淆。断开连接通过四次挥手完成,双方各自删除对方信息。三次握手可合并中间两次提高效率,而四次挥手能否合并取决于ACK和FIN的发送时机。这些机制确保了TCP连接的可靠性和有序性。
2025-10-28 22:07:05
355
原创 【JavaEE初阶】网络原理——TCP核心机制2 超时重传
本文摘要:TCP协议通过确认应答和超时重传机制保障可靠传输。当网络丢包时(主要由路由器/交换机过载导致),TCP会动态调整超时阈值进行重传,并通过接收缓冲区去重避免数据重复。随着重传次数增加,数据成功到达概率显著提升。若多次重传失败则判定为严重网络故障。需注意"三次握手"并非可靠传输的核心机制,确认应答和超时重传才是关键。文章还解释了丢包原因及TCP的处理逻辑。
2025-10-28 20:42:49
445
原创 【JavaEE初阶】网络原理——TCP处理先发后至问题
【摘要】TCP协议通过序号机制确保数据顺序传输,序号针对载荷而非报头。接收方使用接收缓冲区对数据包排序,解决网络"后发先至"问题。当编号靠后的数据先到时,read会阻塞等待前面数据到达,保证应用程序读取顺序与发送顺序一致。相比UDP需要自行处理排序,TCP的这一特性简化了编程工作。下一节将介绍TCP超时重传机制。
2025-10-28 19:47:22
391
原创 【JavaEE初阶】网络原理——TCP报文结构、确认应答机制
本文摘要:本文回顾了TCP协议的核心特征(有连接、面向字节流、可靠传输、全双工)及其报文结构。重点解析了TCP首部长度计算方法(20-60字节)和保留位设计思想,并详细介绍了TCP确保可靠传输的关键机制——确认应答机制。通过字节编号和确认序号的设计,解决了网络传输中"后发先至"的问题,确保数据有序到达。文章还对比了TCP与UDP协议的差异,展现了TCP在可靠性方面的优势。
2025-10-28 10:12:12
1197
原创 [JavaEE初阶] 传输层协议---UDP 相关笔记
那么如何传输一个大的数据呢?(UDP只能存放长度上限为65535bit,也就是64kb的内容)UDP的校验和不是为了防人,和安全性无关,而是为了防止出现数据传输过程中出现"比特翻转的概率很小,恰好两个翻转抵消了影响->小之又小->可以忽略不计。问题三:为啥不把报头上四个部分的的长度扩展到4个字节之类的呢?写程序,由于高能粒子流很多,更大概率会对网络传输产生影响,如果放任不管,一旦广告数据超出了上限,就会导致数据被截断。不仅是网络传输,还会影响到内存/硬盘的存储。问题二:端口号是操作系统自己分配的吗?
2025-10-21 23:57:40
942
原创 [JavaEE初阶] 防止网络传输中的中间人入侵---证书
上述流程是面试的高频考点1.引入对称加密2.引入非对称加密3.中间人攻击4.引入证书&数字签名
2025-10-20 20:37:09
831
原创 [JavaEE初阶]HTTPS-SSL传输过程中的加密
数据在网络上明文传输,黑客很轻松就能获取到重要数据,那怎么办呢?看HTTPS如何对数据进行加密吧!
2025-10-19 21:23:31
824
原创 【JavaEE初阶】1124网络原理
请求和响应中都会用到这两个header(Content-Length和Content-Type),如果有body,但是没有这两个属性(哪怕只有一个),都认为是非法的/错误的http报文。浏览器展示页面的过程中,页面虽然可以通过js来实现一些逻辑,但是js代码无法访问用户的硬盘(文件系统)->即js无法读写你的硬盘。由于互联网快速发展,同一个时间段内,有些用户的浏览器版本比较旧,支持的功能少,有些用户浏览器版本更新,支持的功能多。通过不同的尺寸,设置不同的样式->那么一个页面就可以适配不同的窗口。
2025-10-17 18:51:38
882
原创 【操作系统期末速成】①操作系统概述
>再比如如果要你直接用硬件(如电路、高低电压)来算一个“1+1”,一般人非常难操作 -> 让人直接操作硬件是一件非常难的事情 -> 若我们直接使用“计算器”,输入“1+1=”,这是一般人都能学会干的事情 -> 也就是说。->比如你想喝水,你得先找到河流,再制作一个盛水的工具才能喝 -> 为了过的更好,要建立各种各样的基础设施、城市、工厂、农场、铁路、公路、机场、飞机、电 -> 这些基础设施其实就是操作系统 ->举个栗子:如果把你放在一个非常原始的森林中,有湖泊、高山、森林、丛林野兽等等,你能生活得好吗?
2025-05-14 23:43:16
857
原创 【MYSQL从入门到精通】数据库基础操作、数据类型
1.使用客户端工具连接数据库服务器:mysql -uroot -p2.查看所有数据库:show databases;强烈建议大家在建立数据库时指定编码集和排序规则:create database if not exist 数据库名 character set utf8mb4 collate utf8mb4_0900_ai_ci;4.查看警告信息:show warnings;5.查看当前数据库服务默认的编码集:show variables like '% character%';
2025-04-09 23:23:41
852
1
原创 JDK17的新增特性-Java
密封类一般应用在类和接口中,对接口和类的实现和继承进行约束。主要使用的关键词是final。当这个类被final修饰了,被修饰的类就变成完全封闭的状态了,所有类都没办法继承。JDK17提供了一个新的关键字:sealed。密封类除了可以被该关键词修饰,并且在声明末尾用 permits表示要开放给哪些类型。Java9之后,可以在 接口内实现私有方法。会自动根据当前的变量内容来确定数据类型。用于从case的代码中返回一个值。sealed修饰的类一定要有子类。final修饰的类一定不能有子类。
2024-10-28 21:19:19
1721
5
原创 【数据结构】初识集合框架-Java
答:数据+结构,是用来描述和组织一组数据的方式数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合(存储和组织数据)
2024-10-20 16:51:07
484
原创 数据结构-时间复杂度(C语言)
若题目说N远大于M,则为O(N);若题目说N和M接近,则表达式M+N可以写成2*N或2*M,因此时间复杂度为O(M)或O(N)。解:由上一条解析可知,该函数基本操作的执行次数表达式为2*N+10,最高次项为2*N,去除系数,得该函数时间复杂度为O(N)。大O渐进表示法:O(),()内放程序执行的次数,常见表示有:O(1),O(N),O(N+M),O(N^2),O(logN)由此我们可以看到,随着N的增大,这个表达是中,N^2对结果的影响是最大的,因此Func1的时间复杂度是O(N^2)时间复杂度是个估值!
2024-09-09 21:54:26
473
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅