
Java
文章平均质量分 87
欢迎来到Java专栏,这里将为您分享Java编程语言的核心知识、技巧与最佳实践,帮助您从基础到进阶,掌握Java开发的精髓。
凭君语未可
Hi,我是Weiki,一位普通大学生,学习ing 交流+V xitt808
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一篇文章让你学会Java之增强型 for 循环
本文介绍了 Java 增强型 for 循环的特性与应用。作为传统循环的简化方案,它通过自动处理迭代细节,使代码更简洁易读。文章对比了传统循环与增强型循环的差异,详细解析了其语法结构,并通过数组、集合和多维数组的遍历示例演示具体用法。同时指出了使用时的注意事项:不可修改集合结构、不支持索引访问等限制。最后展示了数据求和、文件处理等实际应用场景。增强型 for 循环能显著提升代码可维护性,是 Java 开发中遍历集合/数组的首选原创 2025-07-21 20:30:05 · 879 阅读 · 0 评论 -
一篇文章让你学会Java之exists()方法
在 Java 编程中,文件操作是一个常见的任务,而 `java.io.File` 类是处理文件和目录的核心工具。其中,`exists()` 方法是一个简单但功能强大的方法,用于检查指定的文件或目录是否存在于文件系统中。原创 2025-05-26 23:52:39 · 899 阅读 · 0 评论 -
一篇文章让你学会Java之List接口中的主要方法
List接口的这些方法使其成为处理有序集合的强大工具。ArrayList:基于动态数组,适合随机访问(getset快),但插入删除较慢。LinkedList:基于双向链表,适合频繁插入和删除(addremove快),但随机访问较慢。Vector:线程安全的ArrayList,性能较低,现代开发中较少使用。原创 2025-04-26 21:29:57 · 1082 阅读 · 0 评论 -
一篇文章让你学会Java之全局配置类
全局配置类是一种特殊的设计模式,用于集中管理应用程序中的各种配置项。配置分散:避免配置散落在代码各处重复定义:防止相同配置在多处重复定义易于修改:集中修改,避免漏改环境适配:方便在不同环境间切换配置@Service/** JDBC 操作模板,用于执行 SQL 查询与更新 *//** 本地缓存:存储从数据库加载的配置,以提升读取性能 *//*** 构造器注入 JdbcTemplate,并在服务启动时立即加载一次配置到缓存。原创 2025-04-20 15:37:27 · 1101 阅读 · 0 评论 -
一篇文章让你学会Java之标识注解
标识注解是一种特殊的注解,其定义中不包含任何方法(也称作元素),它仅仅起到“标记”作用,表明某个程序元素具有特定的属性或者需要进行特殊处理。定义一个标识注解与定义其他注解类似,但不需要定义任何成员。@Retention(RetentionPolicy.RUNTIME) // 注解在运行时可被反射读取@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) // 指定可用的范围,可以同时用于类、方法和字段权限管理。原创 2025-04-20 15:36:59 · 864 阅读 · 0 评论 -
一篇文章让你学会Java之Map接口
在 Java 中,Map 是一种非常重要的数据结构,用于存储键值对(key-value pairs),它提供了一种将键映射到值的机制。原创 2025-03-23 16:38:42 · 904 阅读 · 0 评论 -
一篇文章让你学会Java之接口
Java 中的接口(Interface)是一种抽象类型,是行为的规范,用来规定实现类需要提供的行为。接口中只有方法的声明(从 Java 8 开始可以包含一些方法的实现)。它是一种比抽象类更加彻底的抽象形式,适合在设计应用程序框架或多态调用时使用。原创 2025-03-18 22:31:12 · 1001 阅读 · 0 评论 -
一篇文章让你学会Java之抽象类
抽象类是一个包含抽象方法和普通方法的类,它用来定义一组具有共同特征的类的模板。抽象类本身不能被实例化,但它可以通过子类继承并实现抽象方法,从而完成具体的功能。// 抽象类// 普通成员变量// 构造方法// 抽象方法(没有方法体)// 普通方法(有方法体)// 继承抽象类// 调用父类构造方法// 实现抽象方法@Override");// 实现抽象方法@Override");// 测试抽象类// 输出:Buddy says: Woof!dog.eat();原创 2025-03-17 20:49:01 · 894 阅读 · 0 评论 -
Java中ConcurrentHashMap1.7和1.8之间有哪些区别
Java 1.8的ConcurrentHashMap在设计上更为先进,取消了传统的Segment分段锁结构,采用了CAS与更细粒度的锁机制,并引入了链表到红黑树的转换策略以及并发扩容技术,同时扩展了API,整体提升了并发性能和使用便捷性。这些改进使得在现代多核处理器环境下,ConcurrentHashMap能够更高效地处理并发读写操作。原创 2025-03-16 22:36:32 · 620 阅读 · 0 评论 -
一篇文章让你学会Java之Thread类(线程)
线程(Thread)是程序执行的最小单位。一个Java程序默认至少有一个主线程,即main线程,负责执行main()方法。一个进程(Process)可以包含多个线程,多个线程可以共享进程中的资源(如内存、文件句柄等)。Java使用Thread类和Runnable接口来实现多线程编程。原创 2025-03-15 23:11:36 · 2026 阅读 · 0 评论 -
Java中的List接口有哪些实现类
接口有多种实现类,主要用于存储和操作有序的元素集合。例如,如果需要频繁的插入和删除操作,这些实现类根据具体的需求,可以选择合适的。如果更注重线程安全,则可以考虑。原创 2025-03-10 20:11:31 · 509 阅读 · 0 评论 -
一篇文章让你学会Java之构造方法
构造方法(Constructor)是一种特殊的方法,用于在对象创建时初始化对象的状态。它的主要职责是初始化类的成员变量并分配必要的资源。当类中定义了至少一个构造方法时,Java 不再提供默认的无参构造方法。如果需要无参构造方法,需要手动添加。// 有参构造方法// 错误:没有无参构造方法// 编译报错// 无参构造方法// 有参构造方法构造方法用于初始化对象,方法名与类名相同。无参构造方法和有参构造方法可以共存,配合重载使用。this用于调用同类的其他构造方法;super。原创 2025-03-09 20:00:00 · 929 阅读 · 0 评论 -
什么是Hash碰撞?怎么解决哈希碰撞?
Hash碰撞是指在哈希算法中,不同的输入数据(通常称为键)通过哈希函数计算后得到相同的哈希值,从而映射到哈希表中的同一个槽(bucket)或位置。这种情况不可避免,因为哈希函数需要将大量可能的输入压缩到有限的槽位中,因此总会有不同的键共享同一哈希值。每个哈希表的槽位不直接存放单个元素,而是存放一个链表(或其他数据结构,如平衡树),所有映射到同一槽位的元素都插入该链表中。在查询时,只需遍历该链表来查找目标元素。当负载因子过高时,扩展哈希表的容量,并重新计算所有键的哈希值,使数据分布更加均匀,降低碰撞概率。原创 2025-03-08 21:57:10 · 621 阅读 · 0 评论 -
Java中HashMap的原理
HashMap是 Java 中常用的基于哈希表的数据结构,它实现了Map接口,主要用于存储键值对,并允许通过键快速查找对应的值。原创 2025-03-05 15:12:41 · 1110 阅读 · 0 评论 -
Java中有哪些集合类
在Java中,集合类(Collection classes)属于Java集合框架的一部分,提供了用于存储、操作和处理数据的标准方式。是所有集合类的根接口,定义了常见的集合操作方法,如添加、删除、遍历等;则定义了键值对的映射关系,用于存储和操作具有唯一键的元素集合。每个接口都有具体实现类。原创 2025-03-04 20:39:52 · 324 阅读 · 0 评论 -
一篇文章让你学会Java之定义方法来实现基本的算术运算操作
在Java中,可以通过定义方法(method)来实现基本的算术运算操作(如加法、减法、乘法和除法)。方法是一段代码的封装,能够被重复调用,以实现特定的功能。原创 2025-03-04 20:38:50 · 843 阅读 · 0 评论 -
一篇文章让你学会Java之BigInteger类
BigInteger是java.math包中的类,专门用于表示任意精度的整数。它解决了基本数据类型(如intlong)的精度限制问题。比如:int的最大值是 2³¹-1(21 亿)。long的最大值是 2⁶³-1(约 19 位十进制数)。如果需要表示更大的整数,就必须使用BigInteger。原创 2025-03-03 17:15:00 · 2740 阅读 · 0 评论 -
一篇文章让你学会Java之文件操作
异常处理创建文件、写入文件和读取文件时,都可能会抛出异常,必须用try-catch处理。常见异常有和。资源管理打开文件(如FileWriter或Scanner)后,务必关闭资源(调用close()方法),否则可能造成文件被锁定或资源泄漏。路径问题文件路径可以是相对路径或绝对路径,确保路径合法性。跨平台时,尽量使用或。原创 2025-03-02 20:45:41 · 841 阅读 · 0 评论 -
一篇文章让你学会Java之基本算术运算操作
加法运算用于两个数相加,适用于整数、小数等数值类型,也可以用于字符串拼接。除法运算用于两个数相除,根据数据类型不同,结果可能会舍弃小数部分。取余运算返回两个数相除后的余数,常用于判断奇偶性、循环计数等场景。:乘法操作结果可能会因数据类型而溢出。运算符会执行字符串拼接,而不是数值加法。:减法不会改变原始变量的值,除非重新赋值。Java提供了简化写法的组合运算符,例如。可以使用括号改变默认的运算优先级。,如果超过此值,会发生溢出。:当一个操作数是字符串时,减法运算用于两个数相减。乘法运算用于两个数相乘。原创 2025-02-26 21:30:00 · 453 阅读 · 0 评论 -
一篇文章让你学会Java之格式化输出
返回格式化后的字符串。直接输出格式化字符串到控制台。Formatter提供了更多的控制,可以用于自定义输出流。原创 2025-01-21 23:06:10 · 2408 阅读 · 0 评论 -
一篇文章让你学会Java之哈希表操作
定义一个Entry类,用于存储键值对。实现哈希表的插入、查找、删除等操作。处理冲突(例如,使用链地址法)。K key;V value;size = 0;return;这段代码实现了一个简单的哈希表,使用链表解决冲突。Java 提供的Hashtable类非常适用于需要线程安全的场景,但它的性能较低。原创 2025-01-20 18:26:43 · 1518 阅读 · 0 评论 -
一篇文章让你学会Java之类的封装
封装(Encapsulation)是面向对象编程(OOP)的核心特性之一。它强调将数据和行为整合到类中,并通过限制外部对数据的直接访问,保护数据的安全性。封装是对类的内部实现细节进行隐藏,对外部暴露统一的访问接口。外部程序只能通过类提供的公开方法(如getter和setter)与类的内部数据交互,无法直接修改或访问类的内部数据。隐藏细节,控制访问。// 私有属性// Getter方法:获取name属性// Setter方法:设置name属性// Getter方法:获取age属性。原创 2025-01-18 22:06:52 · 980 阅读 · 0 评论 -
一篇文章让你学会Java之数组的定义和初始化
在 Java 中,数组是一个特殊的对象类型,可以存储多个相同类型的数据。定义数组时,必须指定数组的类型和名称。// 定义并动态初始化一个长度为 5 的整型数组new int[5]:这表示分配了一个包含 5 个整数的数组空间。这里数组的元素被初始化为默认值(对于int类型,默认为0// 定义一个长度为 5 的整型数组,所有元素默认为 0new int[5]:表示分配了一个大小为 5 的数组。默认情况下,数组中所有元素的值会被初始化为0(对于int类型)。原创 2025-01-16 22:00:00 · 1955 阅读 · 0 评论 -
一篇文章让你学会Java之字符串操作函数
在 Java 中,字符串是由 `String` 类表示的,它提供了许多用于操作字符串的方法。原创 2025-01-16 17:33:22 · 1167 阅读 · 0 评论 -
一篇文章让你学会Java之基本数据类型
数据类型大小取值范围默认值是否有符号用途byte1 字节−128-128−128到1271271270是小范围整数short2 字节−32768-32,768−32768到3276732,767327670是小范围整数int4 字节−231-2^{31}−231到231−12^{31}-1231−10是常用整数类型long8 字节−263-2^{63}−263到263−12^{63}-1263−1。原创 2025-01-15 21:25:16 · 1133 阅读 · 0 评论 -
一篇文章让你学会Java之左移、右移操作
操作符名称功能符号右移二进制向右移,保留符号位,高位补符号位(正数补0,负数补1),相当于除以2的n次方。>>>无符号右移二进制向右移,高位总是补0,不考虑符号位。原创 2025-01-15 21:24:04 · 1560 阅读 · 0 评论 -
一篇文章让你学会Java之变量类型
变量类型位置生命周期初始化作用范围是否共享局部变量方法、构造器或代码块内部方法或代码块执行期间必须手动初始化方法或代码块内部否实例变量类中方法之外对象创建到对象销毁自动初始化整个类,通过对象访问否(每对象独立)静态变量类中方法之外,用static修饰类加载到程序结束自动初始化整个类,通过类名访问是参数变量方法或构造器参数列表中方法或构造器调用期间必须手动初始化方法或构造器内部否。原创 2024-11-12 12:15:42 · 1414 阅读 · 0 评论 -
一篇文章让你学会Java之数据类型转换
在Java中,数据类型可以分为基本数据类型和引用数据类型。整数类型byte(1字节)、short(2字节)、int(4字节)、long(8字节)浮点类型float(4字节)、double(8字节)字符类型char(2字节),表示单个字符或Unicode字符布尔类型boolean,表示true和false,不参与数值运算Java的数值类型有一个“精度层次”,即从低精度到高精度依次是byte->short->int->long->float->double。这种精度层次影响了自动和强制转换的规则。原创 2024-11-12 12:02:37 · 1034 阅读 · 0 评论 -
一篇文章让你学会Java之输入与输出基础语法
在 Java 中,输入和输出是常见的操作,通常会用到标准输入输出流。我们可以通过 System.out 来进行输出,使用 Scanner 类来进行输入。原创 2024-11-07 01:35:54 · 3206 阅读 · 0 评论 -
一篇文章让你学会Java之字符串
Java 的字符串是不可变的对象,它的设计保证了安全性和高效性,特别是在多线程环境中。字符串常量池和垃圾回收机制有助于优化内存管理。通过和,可以高效地进行字符串拼接。Java 提供了丰富的字符串操作方法,使得我们能够灵活地进行字符串处理。原创 2024-11-05 17:43:45 · 1076 阅读 · 0 评论 -
一篇文章让你学会Java之继承
继承是什么?看完这篇你就懂了!原创 2024-09-22 19:19:11 · 1091 阅读 · 0 评论 -
一篇文章让你学会Java之修饰符
Java 中的修饰符用于定义类、方法、变量的访问级别和特性,修饰符可以分为两大类:访问修饰符和非访问修饰符。原创 2024-09-02 15:40:32 · 1210 阅读 · 0 评论 -
一篇文章让你学会Java之类和对象
在Java中,类使用class关键字定义。// 成员变量(属性)int year;// 成员方法(行为)在这个例子中,Carcolormodel和yearstart()和stop()。// 成员变量(属性)int year;// 构造方法// 成员方法(行为)// 使用带参数的构造方法创建对象// 调用对象的方法类:定义了对象的属性和行为,是创建对象的模板。对象:类的实例,是类的具体实现。构造方法:用于初始化对象的特殊方法。继承。原创 2024-08-04 19:49:19 · 1632 阅读 · 0 评论 -
一篇文章让你学会Java之注释类别与用法
Javadoc工具可以解析这些注释并生成HTML格式的API文档。结束,可以跨越多行。多行注释适用于对较长的代码块进行详细说明,或者用于注释掉大段代码。它们通常用于对单行代码进行简短说明,或者在代码中插入临时注释。原创 2024-08-04 19:05:09 · 706 阅读 · 0 评论 -
一篇文章让你学会Java之基础语法
Java程序的基本单位是类,每个类包含一个或多个方法。类是对象的蓝图,定义了对象的属性和行为。方法是执行特定任务的代码块。Java通过异常处理机制来处理运行时错误,确保程序的健壮性。Java有八种基本数据类型,每种类型都有固定的大小和范围。多态允许不同类的对象通过相同的接口调用不同的方法实现。方法是执行特定任务的代码块,可以传入参数并返回结果。通过继承,一个类可以继承另一个类的属性和方法。Java标准库提供了许多实用的类和方法,例如。类是对象的蓝图,对象是类的实例。数组是相同数据类型元素的集合。原创 2024-08-04 18:51:40 · 892 阅读 · 0 评论