- 博客(16)
- 收藏
- 关注
原创 关于类和对象
Java是纯面向对象语言,要求所有代码都必须放在类中,创建对象必须通过“new + 构造方法”。// 1. 定义学生类(类名首字母大写,规范) public class Student { // 实例属性(每个对象独有):访问修饰符 private 保证封装性 private String studentId;// 学号 private String name;// 姓名 private int score;
2025-12-29 17:38:18
881
原创 关于多线程
当多个线程同时访问“共享资源”(如全局变量、对象属性、数据库连接)时,由于线程执行顺序不确定(CPU调度随机),可能导致“数据不一致”的问题,这就是数据竞争(Race Condition),也是线程不安全的核心表现。举个简单例子:两个线程同时对一个全局变量count(初始值0)执行count++操作。理论上最终结果应该是2,但实际可能是1——因为count++不是原子操作,它分为3步:①读取count的值;②执行+1;③写入新值。
2025-12-29 17:33:46
582
原创 关于Set集合
Set是Java集合框架中Collection接口的子接口,它定义了一种“无序、不可重复”的集合数据结构(注:部分实现类如LinkedHashSet是有序的,此处的“无序”是指默认不保证元素的插入顺序)。元素不可重复:Set集合中不允许存在两个相等的元素,当尝试添加重复元素时,add()方法会返回false,且元素不会被插入集合。这里的“相等”需满足两个条件:equals()方法返回true,且hashCode()方法返回值相同(这是Set去重的核心依据)。无索引。
2025-12-28 15:33:00
1085
原创 异常的处理
异常,本质上是程序运行过程中出现的“不正常情况”,比如除数为0、文件找不到、网络中断、空指针访问等。这些情况如果不加以处理,会直接导致程序终止运行,给用户带来糟糕的体验,甚至造成业务损失。举个简单的例子:一个用户登录功能,需要读取本地的配置文件验证权限。如果配置文件被误删,程序若未处理“文件不存在”的异常,会直接崩溃,用户无法正常登录;而如果做好了异常处理,程序可以友好地提示“配置文件缺失,请联系管理员”,并正常退出登录流程,避免程序直接挂掉。捕获程序运行中的异常,避免程序意外终止;
2025-12-28 15:30:24
917
原创 常用类库-
本文梳理了Java开发中最常用的五大类库,涵盖字符串处理、集合框架、IO流、日期时间和工具类,每个模块都提供了核心类对比、实战代码和应用场景。这些类库是Java开发的基础,熟练掌握它们的用法能大幅提高开发效率,减少重复编码。建议开发者在实际开发中,根据业务场景选择合适的类库和实现类(如查询优先选ArrayList,增删优先选LinkedList;单线程字符串拼接选StringBuilder等),同时规避常见陷阱(如IO流未关闭、循环字符串拼接等)。若有疑问或补充,欢迎在评论区留言讨论~
2025-12-27 13:35:33
594
原创 继承与多态
继承是面向对象编程中,子类获取父类属性和方法的一种机制。通过继承,子类可以复用父类已有的代码,同时可以在父类基础上扩展新的属性和方法,实现代码的复用与扩展,减少冗余代码。在Java中,继承通过extends关键字实现,且遵循“单继承”原则:一个子类只能有一个直接父类(但可以多层继承,即子类的父类还可以有自己的父类)。多态是指同一操作作用于不同的对象,会产生不同的执行结果。简单来说,就是“一个接口,多种实现”。多态的实现依赖于继承和方法重写,核心是“父类引用指向子类对象”。
2025-12-27 13:31:11
633
原创 集合和泛型
泛型:解决类型安全和代码复用问题,是通用逻辑的“模板”技术。泛型集合:基于泛型实现的高效数据容器,推荐优先使用(List<T>、Dictionary<TKey, TValue> 等)。关联:泛型是泛型集合的底层支撑,泛型集合是泛型的典型应用。
2025-12-26 21:21:18
987
原创 关于异常处理
异常(Exception)是程序在运行过程中出现的非正常情况,它会中断程序的正常执行流程。例如:除数为0、访问不存在的文件、网络连接中断等,都属于异常场景。Java中的异常本质是一个对象,它封装了异常发生时的相关信息(如异常描述、发生位置、堆栈轨迹等),继承自Throwable类。Java通过异常对象将程序的错误状态从发生异常的地方传递到处理异常的地方,实现“错误检测”与“错误处理”的分离。
2025-12-26 21:13:54
784
原创 抽象类和接口
抽象类是一种不能被实例化的类,用于定义一组类的共同属性和行为模板。它通过abstract关键字声明,既可以包含抽象方法(无具体实现的方法),也可以包含具体方法(有实现体的方法)和成员变量。接口是一种完全抽象的规范,用于定义一组方法的签名(无具体实现),代表一种“能力约定”。它通过interface关键字声明,在Java 8及以后,接口可以包含默认方法(default)和静态方法(static),但仍不能包含成员变量(只能有修饰的常量)。抽象类和接口的核心区别在于设计初衷:抽象类侧重“模板复用。
2025-12-25 23:28:32
829
原创 关于数组的文章
数组(Array)是一种线性数据结构,它将具有相同数据类型的元素(Java严格要求,Python可灵活存储不同类型)按顺序存储在一段连续的内存空间中。连续内存空间:这是数组最核心的特性。所有元素紧密排列,没有空隙,这也是数组支持“随机访问”的基础。相同数据类型(多数语言):Java、C++等强类型语言要求数组元素类型一致,确保内存占用大小固定;Python的list本质是动态数组,可存储不同类型元素,但底层仍通过连续内存管理。固定长度(静态数组)/动态扩容(动态数组)
2025-12-25 23:25:48
760
原创 程序流程控制
程序流程控制是编程的基础核心,三大基本结构(顺序、选择、循环)是构建所有复杂逻辑的基石。掌握if-else、for、while等核心语句的用法,理解break、continue的控制逻辑,是写出正确代码的前提;而避开常见坑、运用优化技巧,则能让代码更高效、更易读、更易维护。学习流程控制的关键在于“多练、多梳理逻辑”——遇到复杂问题时,可先通过流程图梳理执行顺序,再转化为代码。希望本文能帮助你彻底掌握程序流程控制,为后续学习更复杂的编程知识(如面向对象、并发编程)打下坚实基础。
2025-12-24 21:38:46
479
原创 关于数组的概念
(2行2列,存储两组成绩)。• 二维数组:可理解为“数组的数组”,用于表示表格型数据(如成绩表,每行是学生成绩,每列是科目)。• 若数据量动态变化(如不确定学生人数),数组可能导致空间浪费(预分配过大)或不足(容量不足)。• 解决方案:使用集合类(如ArrayList),其可动态调整容量,更适合数据量不确定的场景。• 类型统一:元素类型必须一致(如int数组只能存整数,String数组只能存字符串)。• 表格数据:存储Excel表格中的行与列(如员工信息表,每行是一条记录,每列是字段)。
2025-06-17 13:48:59
324
原创 关于数组的概念及应用
最后,数组通过索引来访问元素,索引从 0 开始,因此可以通过索引快速准确地定位到数组中的任何一个元素,比如要访问数组中的第 3 个元素,其索引为 2。二维数组可以看作是 “数组的数组”,常用于表示表格型的数据,比如一个成绩表,每一行可以表示一个学生的成绩,每一列可以表示不同的科目。这种常用的集合类,其内部就是基于数组来存储元素的,当数组容量满了之后,会自动创建一个新的更大的数组,并将原数组中的数据复制过去,以实现动态扩容。更高维的数组,如三维数组,可用于表示立体数据,不过在实际开发中使用相对较少。
2025-06-17 00:28:56
367
原创 关于java接口的概念以及应用
Java 8及以后的版本中,接口还可以有默认方法,方便在不破坏现有实现类的情况下为接口添加新功能。它也能定义统一规范,比如在开发支付系统时,可定义支付接口,让不同支付方式的类去实现,保证支付流程的一致性。接口还能解耦代码,使高层模块依赖接口而非具体类,方便替换不同的实现。此外,接口可以作为常量接口,定义一些全局常量供其他类使用。Java接口是一种抽象类型,用于定义一组方法签名,不包含方法的实现,类通过实现接口来表明其具有特定的行为或能力。接口与抽象类不同,接口强调行为的规范,类可以实现多个接口;
2025-06-15 15:13:12
104
原创 初识java
Java 程序在编译后生成字节码(.class 文件),这些字节码可以在任何安装了 Java 虚拟机(JVM)的设备上运行,实现了真正的跨平台。:Java 是一种面向对象的语言,支持封装、继承和多态三大特性。通过类和对象的设计,可以更好地组织代码和模拟现实世界。:Java 的语法类似于 C++,但去掉了指针、头文件等复杂特性,降低了学习难度。:Java 提供了强大的安全机制,如沙箱环境、字节码验证等,防止恶意代码的执行。:Java 内置了多线程支持,可以轻松实现并发编程,提高程序的执行效率。
2025-03-07 16:09:44
165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅