- 博客(56)
- 问答 (3)
- 收藏
- 关注
原创 Java异常处理的艺术
本文系统介绍了Java中的异常处理机制。首先通过实例演示了算术、空指针和数组越界三种常见异常,说明了异常会导致程序终止的特性。继而详细讲解了try-catch-finally语句的使用方法,强调了异常捕获的顺序性和finally块的必然执行特点。文章还区分了受检异常(编译时)与非受检异常(运行时)的差异,阐述了throw和throws关键字的不同用途。最后,通过自定义异常类的实现示例,展示了如何扩展Exception类来创建特定业务异常,并给出了完整的登录验证异常处理案例。全文从基础到进阶,全面覆盖
2025-09-29 15:28:17
594
原创 我的创作纪念日
创作博客一年来,作者通过写作深化了对知识的理解,收获了粉丝关注与阅读量突破的喜悦。初期因IT知识薄弱而艰难,但坚持创作已成为习惯。期间上传有成就感的代码至GitHub,并在优快云获得徽章。未来目标包括提升文章数量、阅读量破10万,以及进入中大厂工作。从大一萌新到大二,作者在IT领域不断成长,期待继续坚定前行。
2025-09-27 17:00:31
430
原创 包与封装(Java)
Java包与封装机制摘要 Java通过包机制组织类,防止命名冲突并提高可读性。包类似于文件目录结构,可通过import语句导入特定类或整个包(如java.util.*)。当存在同名类冲突时,需使用完整类名。 封装是面向对象的重要特性,通过private修饰符隐藏内部实现细节,仅暴露安全的get/set方法接口。访问控制符分为: private:仅本类可访问 default(包访问):同包内可访问 protected:同包及子类可访问 public:完全开放访问 特别注意:接口方法不能使用private修饰,
2025-09-25 15:52:52
655
原创 final关键字
Java中final关键字用于确保数据一致性。修饰基本数据类型时值不可变;修饰引用类型时引用不可变(但对象内容可变)。修饰方法可防止子类重写,保持父类设计;修饰类则禁止继承,常用于完善类设计或防止恶意篡改。final通过限制修改来增强代码安全性,适用于变量、方法和类三种场景。
2025-09-22 20:03:02
222
原创 顺序表的实现以及相关的源码
本文分析了ArrayList的动态扩容机制及实现方式。ArrayList在初始化时为空数组,首次添加元素时会扩容至默认容量10。当元素数量达到数组上限时,会调用grow()方法进行1.5倍扩容。文章还详细介绍了顺序表的模拟实现,包括成员变量、构造方法以及增删改查等核心操作,如add()、remove()、contains()等方法的具体实现逻辑,并提供了完整的代码示例。
2025-09-22 15:24:02
924
原创 继承(Java)
本文介绍了面向对象编程中的继承概念,通过Java代码示例展示了继承如何实现代码复用。主要内容包括:1)继承的基本语法和用途;2)子类访问父类成员变量和方法的方式;3)super关键字的使用场景;4)构造方法的继承规则;5)代码块(普通、实例、静态)的执行顺序;6)继承中的执行顺序特点。重点说明了父类和子类在成员变量、方法重名时的访问规则,以及静态代码块、实例代码块和构造方法的执行顺序规律。
2025-09-18 15:30:31
936
原创 哈希表源码解析
HashMap的put操作通过putVal方法实现高效键值存储。方法首先检查并初始化数组,通过哈希计算索引位置处理元素插入。遇到冲突时,根据节点类型(链表或红黑树)采用不同策略,链表过长会转为红黑树。resize方法则以两倍扩容数组,通过位运算(e.hash&oldCap)将元素分为两组迁移到新数组,确保扩容高效性。整个机制实现了O(1)的平均时间复杂度,并通过动态扩容和冲突处理保持高性能。
2025-09-17 10:49:51
705
原创 哈希表的实现(Java)
本文介绍了哈希表的两种实现方式:基础版本和泛型版本。基础版本使用数组+链表结构(开散列法)解决哈希冲突,包含put()、get()、resize()等方法实现,通过负载因子控制扩容。泛型版本引入Person类示范引用类型的处理,覆盖equals()和hashCode()方法,支持任意键值对存储。两种实现都采用链表头插法和动态扩容机制,完整展示了哈希表的核心实现逻辑。
2025-09-15 15:27:26
462
原创 数组的相关操作(Java)
本文介绍了数组的基本概念和使用方法。数组是相同类型元素的集合,在内存中连续存储,属于引用类型。文章详细讲解了一维数组的创建(动态/静态初始化)、默认值设置、遍历方式(下标/for-each)以及常用操作(toString、fill、sort、copyOf等)。同时介绍了二维数组的创建、初始化和遍历方法。通过代码示例展示了数组的基本操作和注意事项,如数组名的引用特性、未初始化时的默认值等,为理解和使用数组提供了基础指导。
2025-09-10 19:33:05
540
原创 Comparable与Comparator接口
Java中Comparable和Comparator接口用于对象排序。Comparable是"内部比较器",通过实现compareTo方法定义类的自然排序规则,排序方式固定;Comparator是"外部比较器",通过独立的compare方法实现灵活排序逻辑,无需修改原类代码。Comparable简单但需修改源码,Comparator更灵活且可复用,适合复杂排序需求。两者分别适用于不同场景:Comparable适合固定排序规则,Comparator适合多样化排序需求。
2025-09-09 14:17:51
368
原创 内部类(Java)
内部类是在一个类内部定义的类,分为实例内部类、静态内部类、局部内部类和匿名内部类。实例内部类可直接访问外部类成员,同名变量需用外部类名.this.变量区分;静态内部类只能访问外部类静态成员;局部内部类定义在方法内,作用域受限;匿名内部类用于简化一次性实现接口或继承类的场景。创建实例内部类需先创建外部类对象,而静态内部类可直接创建。内部类为Java提供了更灵活的代码组织方式。
2025-09-08 16:34:19
470
原创 抽象类和接口
本文详细讲解了Java中的抽象类和接口概念。抽象类作为不能被实例化的模板类,通过abstract修饰,可以包含抽象方法和具体实现,强调继承与多态特性。接口则是纯粹的行为规范,通过implements实现,所有方法默认为public abstract。文章通过饮料制作和USB设备两个案例,分别演示了抽象类的模板方法模式应用和接口的多态特性,重点说明了向上转型、向下转型的实现原理及其在程序中的实际应用。两类结构都体现了Java面向对象编程中定义与实现分离的核心思想。
2025-09-04 16:40:18
605
原创 JavaWeb项目在服务器部署
本文介绍了在Ubuntu服务器上部署JavaWeb项目的完整流程。首先需要安装JDK17和MySQL,包括软件包更新、安装及密码设置。接着指导如何打包JavaWeb项目,修改配置文件中的数据库连接信息,使用Maven生成jar包。然后将jar包上传至服务器,通过命令行运行项目。最后讲解了云服务器安全组配置(以阿里云为例)和项目访问方法,并提供了停止项目运行的命令。全文包含详细的操作步骤和注意事项,适合初学者快速上手服务器项目部署。
2025-09-03 21:18:46
327
原创 Cookie和Session机制
本篇文章介绍了Session和Cookie的机制,以及它们之间的关系,而且本篇文章通过图文结合,相信你会对Session和Cookie机制有一个更加深刻的了解~~
2025-05-19 09:15:00
326
1
原创 封装和分用(网络原理)
本文对TCP/IP五层协议进行解释,以及封装和分用的过程!通过图文结合,相信你对TCP/IP五层协议和封装和分用有一个较为好的了解~~
2025-05-11 22:50:59
1101
原创 UDP/TCP协议知识及相关机制
该文章介绍了UDP协议/TCP协议的相关知识。TCP协议确保可靠性和有效性的机制~~通过图文结合,层层深入,带领大家理解TCP协议的机制。相信通过该篇文章的学习,你会对传输层的协议有一个清晰的认识~
2025-04-30 08:30:00
1009
原创 进程([特殊字符])
同一时刻,可以同时运行多个任务,这些正在运行的程序,就是任务,也叫做进程!计算机的每个进程在运行的时候,都需要给其分配一定的系统资源。进程是系统分配资源的基本单位。
2025-02-18 15:27:29
816
原创 cpu相关知识
cpu是计算机的核心部件,通过执行(程序代码)完成算术运算、逻辑判断、数据存储等任务那么如何提高cpu的算力呢?在以前一个cpu中只有一个核心,现在的一个cpu可以有多个核心,每一个核心就相当于一个cpu。从而多核cpu就可以提高其算力。那么一个cpu能不能当两个使用呢?可以,引入了超线程技术。比如说,1个cpu有4个核心,引入了超线程技术之后,一个顶俩,所以相当于8个cpu,进而提高了其算力。
2025-02-17 14:53:58
379
原创 Java有关数组的相关问题
栈主要用于存储方法中的局部变量,包括基本数据类型(int、double、boolean等)和对象的引用(不包含对象本身)。栈的大小在程序启动时就已经确定,并且在运行过程中不会改变,如果栈溢出,会出StackOverflowError异常。:当一个方法被调用时,该方法的局部变量和参数会被压入栈中,这些变量会按照相反的顺序从栈中弹出。:相对于栈,堆中的数据访问速度较慢,因为需要通过指针来定位对象,并且堆中的数据较为分散。堆中的对象不再被引用时,需要由垃圾回收器来回收其占用的内存。
2024-12-01 23:48:09
688
原创 指针(c语言)
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个 函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数 的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进 行响应。
2024-11-04 20:09:30
1570
空空如也
c语言问题,求解答。。
2024-08-09
c语音中问题,希望大家解答下
2024-08-04
c语音问题,望大家解答下
2024-07-22
c语音问题,看图,望大家给个解答
2024-07-22
c语音中问题,希望大家给个解答
2024-07-20
'C语音问题,望大家解答一下,xx
2024-07-18
C语言出现问题,望各位给个解答
2024-07-18
c语言中出现问题,望各位同学解答一下
2024-07-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅