自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 玩转Linux命令行:新手必备的20个核心命令详解

掌握这些基础命令后,你已经能够完成Linux系统中的大部分日常操作。学习命令行的最佳方法就是多练习、多实践。不要害怕犯错,在个人虚拟机或测试环境中大胆尝试。记住,每个命令都有丰富的选项和参数,可以通过man 命令名(如man ls)查看详细的使用手册。命令行之路虽然开始可能有些陡峭,但一旦掌握,你将发现一个全新的高效工作世界!

2025-11-19 16:18:54 405

原创 Web认证

Cookie是服务器发送到用户浏览器并保存在本地的一小块数据,会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。Session是服务器端的一种机制,用于跟踪用户的会话状态。服务器会为每个用户创建一个唯一的会话标识。令牌技术,如JWT,是现代Web开发中处理身份验证的一种核心方案。它与传统的Session机制有根本区别:Session将用户的登录状态等信息保存在服务器端,而令牌技术则是将这些信息直接嵌入到令牌本身中,然后完整地交给客户端保管。

2025-11-06 16:47:57 666

原创 关于命理的一些猜想

​在何时何地确切发生,而中国玄学所做的,更接近于洞察和推演“势”.四柱八字、六壬、梅花易数等,就像是分析“势”的复杂模型.它们通过一套符号系统(干支、卦爻),将某个时间点或问卦瞬间的宇宙能量状态(“天时”)定格下来,然后根据五行生克、卦象变化的规则,来推演这种能量格局在未来会如何演变、相互作用.比如,八字流年显示“比劫夺财”,它预测的不是“你一定会被朋友骗走5万元”,而是揭示了你当前所处的“势”是:​。在我们的知识体系里,世界是物质的,规律是线性的,逻辑是清晰的。深层规律、动态趋势和可能性范围。

2025-10-29 18:57:12 318

原创 hasNext()和 hasNextLine()

当你想把输入按空格分隔的“单词”一个个读出来处理(比如读取一组数字、名字列表)。当你要处理整行的内容(哪怕这一行全是空白),特别是需要保留原始格式和空格。下一个换行符的所有内容都读走(如果紧跟着就是换行符,就读到空字符串)。​ 后面是否还有能当作一个独立单元(单词、数字等)读出来的数据。读取单词后,指针停在那个单词后面的空白处(比如空格或换行符前面)。​ 如果跳过所有空白后啥也没有(文件结束或输入结束),就返回。:检查“文件/输入的下一整行”是否存在(只看换行):检查“下一个有效单词”是否存在(跳过空白)

2025-08-18 16:01:31 414

原创 Java异常处理机制解析

Java异常处理的核心在于通过机制构建程序韧性:​​受检异常​​(如)强制开发者提前防御外部错误,​​非受检异常​​(如)需通过代码逻辑预防而非捕获,​​错误​​(如)则不可恢复。实践中需遵循​​四大铁律​​:绝不吞没异常(空catch块是罪恶)、精准记录上下文信息(含根因链getCause())、资源清理必须进入finally(或使用)、自定义异常应赋予明确业务语义。最终目标:将异常转化为​​可诊断的故障信号​​,而非程序崩溃的导火索。

2025-08-12 12:52:24 733

原创 HashTable, HashMap, ConcurrentHashMap

HashMap: 线程不安全. key 允许为 nullHashtable: 线程安全. 使用 synchronized 锁 Hashtable 对象, 效率较低. key 不允许为 null.ConcurrentHashMap: 线程安全. 使用 synchronized 锁每个链表头结点, 锁冲突概率低, 充分利用CAS 机制. 优化了扩容方式. key 不允许为 null。

2025-08-09 17:36:47 279

原创 Smart Tomcat

本篇博客的内容是教你借助idea中的插件,把tomcat集成到idea中。其中 Context Path 默认填写的值是项目名称.搜索下载 ,如果一直处于加载界面,就尝试一下科学上网。如果安装过程中有问题,可以给我留言,看到我就会回复。这会影响到后面咱们的访问页面.其他的选项不必做出修改。

2025-07-21 11:08:02 796

原创 Servlet API 详解

Servlet API 是 Java EE(现 Jakarta EE)的核心组件,它为开发者提供了构建 Web 应用程序的基础框架。理解 Servlet API 的工作原理对掌握 Java Web 开发至关重要。

2025-07-20 10:48:35 1121

原创 手把手教你打印Hello World

说这是史上最复杂的Hello World 也不为过,其实还有更简单的部署方式,但我没选,而是教大家采用这种原始的方式来创建项目,因为这更基础,也更容易理解一些细节,如果你最终打印成功,那么恭喜你已经学会了如何创建一个Servlet项目。

2025-06-17 23:34:08 990

原创 (每日一道算法题)子集

给你一个整数数组nums,数组中的元素。返回该数组所有可能的子集(幂集)。解集包含重复的子集。你可以按返回解集。

2025-06-09 21:52:53 790

原创 (每日一道算法题)全排列

回溯算法以其清晰的决策树结构,成为解决全排列问题的首选方案。状态标记与回溯恢复新列表创建避免引用陷阱递归终止条件的精确控制掌握这些核心概念,不仅能解决全排列问题,还能扩展到更复杂的组合优化问题,为算法设计打下坚实基础。

2025-06-09 16:56:01 451

原创 (每日一道算法题)二叉搜索树中第K小的元素

二叉搜索树的第k​​中序遍历​​是关键,能按升序访问节点​​使用成员变量​​(非参数)维护计数器​​增加终止条件​​优化性能​​避免值传递陷阱​​ - Java中基本类型参数无法在递归中修改上层值。

2025-06-08 16:34:27 579

原创 (每日一道算法题)验证二叉搜索树

实际应用中,BST常用于实现快速查找的数据结构,如TreeMap。理解其有效性判断对构建正确算法至关重要。通过中序遍历递归实现,我们既保证了代码简洁性,又确保了逻辑的严密性,有效解决了二叉搜索树的验证问题。这种方法利用了BST的中序特性,实际上也反映了二叉搜索树的本质:​。二叉搜索树的关键特性是:​。

2025-06-08 12:07:34 465

原创 (每日一道算法题)二叉树剪枝

通过​​后序遍历+叶子节点精准判断​适用场景:树型数据处理中移除无效分支(如零值配置、空目录清理)扩展思考:若修改为"保留至少含一个1的子树",代码逻辑不变(本解法已实现)工程启示:递归深度优先搜索是处理树型结构的利器,以 O(n) 时间完成复杂裁剪。

2025-06-07 16:28:39 589

原创 (每日一道算法题)求根节点到叶节点数字之和

给你一个二叉树的根节点root,树中每个节点都存放有一个0到9之间的数字。123计算从根节点到叶节点生成的。是指没有子节点的节点。理解问题:我们需要计算二叉树中从根节点到每个叶节点的路径所表示数字的总和。路径表示的数字由路径上的节点值按顺序组成。

2025-06-04 22:32:34 410

原创 HTTPS

HTTPS 工作过程中涉及到的密钥有三组.第一组(非对称加密): 用于校验证书是否被篡改. 服务器持有私钥(私钥在注册证书时获得), 客户端持有公 钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器使用这个私钥对证书的 签名进行加密. 客户端通过这个公钥解密获取到证书的签名, 从而校验证书内容是否是篡改过.

2025-06-01 23:13:52 2247

原创 HTTP协议解析

HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议HTTP 是互联网上最基础、最重要的沟通规则之一。简单来说,它定义了你的电脑(比如你用的浏览器)和存放网站内容的服务器(就是远方的另一台电脑)之间如何“说话”。每当你打开一个网页、点击一个链接、或者提交一个表单,背后都是你的浏览器按照 HTTP 的规则在向服务器发送请求。服务器收到这个请求后,会根据请求的内容,也按照 HTTP 的规则进行回应。

2025-06-01 15:54:07 1301

原创 IP协议解析

例如数值5对应20字节(5×4),最大允许15代表60字节(15×4)。承载的上层协议内容(如TCP报文或UDP数据报),长度=总长度 - 头部长度,最大可达65535-20=65495字节。明确标识使用的IP协议版本,填4表示IPv4,填6则为IPv6。标明整个IP数据报的总字节数(含头部和数据),最大值65535字节。发送方为每个原始数据报分配唯一ID,分片后的所有碎片保持相同标识,便于接收端重组。指明上层协议:6对应TCP,17对应UDP,1为ICMP,其他值可查协议号列表。

2025-05-26 16:21:32 399

原创 (每日一道算法题)实现 pow(x, n) 的快速幂解法

此方法高效地处理了所有可能的输入情况,包括大数运算和负数指数,确保了正确性和高效性。

2025-05-25 21:43:52 409

原创 TCP原理解析

TCP(Transmission Control Protocol)是互联网通信中最核心的传输层协议,为应用程序提供可靠、有序的端到端数据传输服务。作为现代网络通信的基石,TCP通过多种机制在保证数据可靠性的同时,尽可能提升传输效率。

2025-05-22 22:58:28 1487

原创 (每日一道算法题)两两交换链表中的节点

递归解法通过分解问题,逐层处理并合并结果,代码简洁但需注意栈空间。迭代解法省去了递归开销,适合处理长链表。理解这两种方法有助于深入掌握链表操作的核心思想。

2025-05-21 17:36:57 392

原创 理解UDP协议

UDP的简单性既是优势也是局限。它适合实时性要求高、允许适度丢包的场景(如在线游戏、直播),但在需要可靠传输时需开发者自行设计保障机制。理解UDP的核心原理,能帮助我们在实际项目中做出更合理的协议选型。

2025-05-19 17:09:14 727

原创 Java网络编程

网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)。当然,我们只要满足进程不同就行;所以即便是同一个主机,只要是不同进程,基于网络来传输数据, 也属于网络编程。特殊的,对于开发来说,在条件有限的情况下,一般也都是在一个主机中运行多个进程来完成网络编程。进程A:编程来获取网络资源进程B:编程来提供网络资源。

2025-05-12 10:39:41 656

原创 网络原理初识

本来想从网络的发展史开始写,之后再写网络的定义啥的,但快写完了才发现,这不课本教材吗,没劲,遂弃之,重撰,删芜就简.写点我认为,对程序员来说真正有用的东西网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址来标识。

2025-05-08 23:42:14 1246

原创 Java文件I/O操作

​​唯一标识​​:通过文件名和扩展名(如data.txt)区分​​结构化存储​​:数据按特定格式(文本、二进制)组织​​元数据​​:包含创建时间、大小、权限等属性。

2025-05-07 09:53:25 659

原创 Synchronized锁升级机制与优化策略

锁升级的本质是根据线程竞争强度逐步提升锁的“安全等级”,从无锁状态逐步演变为重量级锁,从而在无竞争时减少开销,在高竞争时确保安全性。如果后续有其他线程来竞争该锁(刚才已经在锁对象中记录了当前锁属于哪个线程了, 很容易识别 当前申请锁的线程是不是之前记录的线程), 那就取消原来的偏向锁状态, 进入一般的轻量级锁状态.JVM 将 synchronized 锁分为无锁,偏向锁,轻量级锁,重量级锁状态,会根据情况,进行依次升级.​ 时(如循环体内的同步块),会将锁范围扩展到整个操作序列,避免频繁的锁状态切换。

2025-04-28 15:44:25 1005

原创 CAS解析

CAS: 全称Compare and swap,字面意思:”比较并交换“,一个 CAS 涉及到以下操作:我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。比较 A 与 V 是否相等(比较)如果比较相等,将 B 写入 V(交换)返回操作是否成功。CAS是一种原子操作,用于在多线程环境下实现变量的无锁更新,整个过程通过一条CPU指令(如cmpxchg)保证原子性。这段代码并非原子操作,真实场景中,CAS 通过 ​​硬件级原子指令​​(如 x86 的cmpxchg)实现原子性。

2025-04-28 11:19:40 300

原创 常见锁策略

在多线程编程和分布式系统中,​​是保证数据一致性和系统稳定性的核心机制。不同的场景需要匹配不同的锁策略,本文将系统性地解析常见的锁策略及其适用场景(只解释思想,不涉及实现)。

2025-04-27 20:43:25 588

原创 Java线程池详解

Java线程池通过提供高度可定制的并发控制能力。理解每个参数对系统性能的影响(如队列容量与最大线程数的平衡),能够帮助开发者构建出高吞吐、低延迟的线程管理体系。建议根据具体业务场景,结合监控数据动态调整参数,方能发挥线程池的最大效能。

2025-04-27 18:09:07 1378

原创 定时器详解

Java定时器是任务调度的核心工具,理解其原理与差异至关重要。对于简单需求,Timer足够便捷;高并发或复杂调度场景建议采用。此外,第三方库如Quartz、Spring Task提供了更强大的分布式调度能力,可根据项目需求扩展。

2025-04-26 17:54:45 487

原创 Java常用API详解

类位于金字塔的最顶端,它是所有Java类的终极父类在Java中,​​并非所有Object类的方法都需要重写​​。是否需要重写取决于具体需求。

2025-04-25 21:49:42 956

原创 阻塞式队列

比如过年一家人一起包饺子. 一般都是有明确分工, 比如一个人负责擀饺子皮, 其他人负责包. 擀饺 子皮的人就是 "生产者", 包饺子的人就是 "消费者". 擀饺子皮的人不关心包饺子的人是谁(能包就行, 无论是手工包, 借助工具, 还是机器包), 包饺子的人 也不关心擀饺子皮的人是谁(有饺子皮就行, 无论是用擀面杖擀的, 还是拿罐头瓶擀, 还是直接从超 市买的).它通过内置的等待/唤醒机制,自动管理线程的阻塞和唤醒,极大简化了多线程协作的复杂度。2) 阻塞队列也能使生产者和消费者之间 解耦.

2025-04-23 20:12:01 1063

原创 Java多线程编程初阶指南

实现方式代码行数可复用性灵活性推荐指数继承Thread5-10低差★☆☆☆☆常规Runnable6-8高中★★★☆☆匿名内部类3-5低高★★★★☆Lambda表达式1-3中极高★★★★★​核心定义​​:当多个线程并发访问共享资源时,程序仍能保持正确行为的状态​​黄金准则​原子性(Atomicity)保证可见性(Visibility)保证有序性(Ordering)保证使用没有共享资源的模型适用共享资源只读,不写的模型不需要写共享资源的模型。

2025-04-22 23:17:08 1502

原创 Java命名规则

在 Java 项目中,命名规则遵循一定的约定俗成规范,目的是提高代码可读性和团队协作效率。

2025-04-17 20:42:49 1268

原创 Java内部类详解

​​成员内部类​​:定义在类的成员位置,无static修饰​​静态内部类​​:定义在类的成员位置,有static修饰​​局部内部类​​:定义在方法内部​​匿名内部类​​:没有名字的局部内部类,常用于简化代码什么时候该用内部类?​// 成员变量和方法特点:属于外部类对象(需依赖外部类实例存在)可直接访问外部类所有成员(包括private)不能定义静态成员(JDK16+允许静态变量)// 静态/非静态成员属于外部类本身只能直接访问外部类的静态成员可包含静态成员。

2025-04-16 20:53:10 684

原创 Java接口深度解析

​​基础语法:​// 接口声明// 常量(默认 public static final)String CONSTANT = "接口常量";// 抽象方法(默认 public abstract,可省略修饰符)// 默认方法(Java 8+,有方法体)System.out.println("默认方法实现");// 静态方法(Java 8+,通过接口名直接调用)System.out.println("静态方法实现");// 实现接口的类// 必须实现抽象方法@Override。

2025-04-11 21:03:59 494

原创 Java抽象类与抽象方法详解

​​设计意图​​:当多个子类具有共性行为但具体实现不同时,通过抽象类强制规范子类的实现格式。​​典型场景​// 定义抽象图形类// 抽象方法:计算面积(无法确定具体实现)// 具体子类实现@Override// 圆形面积计算@Override// 矩形面积计算强制约束​包含抽象方法的类 ​​必须声明为抽象类​​子类 ​​必须实现所有抽象方法​​(除非子类也是抽象类)​​语法规则​[访问修饰符] abstract 返回值类型 方法名(参数列表);示例说明​。

2025-04-10 22:42:23 428

原创 Java代码块详解:分类、作用与最佳实践

特性局部代码块构造代码块静态代码块执行次数每次方法调用每次new对象类加载一次存储位置栈内存堆内存方法区是否可抛异常可处理可处理需捕获或终止加载访问权限仅限方法内部可访问实例变量仅访问静态成员理解静态代码块的 ​​一次性初始化​​ 机制避免构造代码块的 ​​滥用风险​​认识局部代码块的 ​​历史局限性​​在实际开发中,建议结合IDE的代码分析工具(如IntelliJ IDEA的。

2025-04-10 21:44:47 739

原创 Java权限修饰符深度解析

Java提供四种访问控制修饰符,按访问范围从宽到窄排序如下:​​访问范围​​:所有类均可访问​​使用场景​​:​​示例​​: ​​访问范围​​:​​使用场景​​:​​示例​​: ​​访问范围​​:仅同包类可见​​使用场景​​:​​示例​​: ​​访问范围​​:仅本类可见​​使用场景​​:​​示例​​: 2. 构造函数访问控制 ​​最小化公开元素​​ 优先使用最严格的访问级别(推荐顺序): → 默认 → → ​​数据封装原则​​​​ 3.接口方法

2025-04-10 21:22:00 497

原创 Java final关键字规范说明

​:声明为。

2025-04-10 21:01:06 381

messageWall

messageWall

2025-07-21

Java常用API详解

Java常用API详解

2025-04-25

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

TA关注的人

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