Java
文章平均质量分 77
Elijah Laam
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Set集合如何保证元素不重复
Set接口继承自Collection,强制要求实现类不允许包含重复元素。Set集合能够保证元素不重复,主要依赖于哈希算法、对象相等性判断和特定的数据结构设计。下面从底层实现、判断逻辑和不同Set实现的差异三个方面详细解释。原创 2025-03-25 10:52:48 · 478 阅读 · 0 评论 -
Java之运行时数据区
内存区域线程共享作用异常程序计数器否记录当前线程执行的字节码指令地址无Java 虚拟机栈否存储方法调用的栈帧本地方法栈否支持 Native 方法调用Java 堆是存储对象实例和数组方法区是存储类信息、常量、静态变量等运行时常量池是存储类文件中的常量池信息直接内存是用于 NIO 操作。原创 2025-03-24 17:22:09 · 889 阅读 · 0 评论 -
Java之Unsafe类
Unsafe类是 Java 中一个非常特殊且强大的工具类,它提供了直接操作内存、线程、对象等底层功能。由于它的功能非常强大且不安全(容易导致程序崩溃或数据不一致),因此被命名为Unsafe。Unsafe类通常用于高性能库、框架或需要直接操作内存的场景(如 Netty、Disruptor 等)。原创 2025-03-20 09:58:03 · 507 阅读 · 0 评论 -
Java之队列
在 Java 中,队列(Queue)是一种常用的数据结构,遵循 先进先出(FIFO) 的原则。Java 提供了多种队列实现,适用于不同的场景。以下是 Java 中常用的队列实现及其特点: 是 Java 集合框架中的一个接口,定义了队列的基本操作。常用方法包括:2.2 实现:基于动态数组实现的双端队列()。特点:无界队列(默认初始容量为 16,动态扩容)。不支持 元素。插入和删除操作的时间复杂度为 O(1)。性能优于 ,因为基于数组实现,内存占用更小。适用场景:需要高效的双端队列操原创 2025-03-13 13:35:33 · 797 阅读 · 0 评论 -
聊聊Spring AI,一起进入Java AI的世界
Spring AI 为 Java 开发者提供了一个强大的工具集,使得在 Spring 应用程序中集成 AI 功能变得更加简单和高效。无论是机器学习、自然语言处理还是计算机视觉,Spring AI 都为 Java 开发者打开了通往 AI 世界的大门。如果对 Spring AI 或 Java AI 世界感兴趣,可以从官方文档和示例项目开始,逐步探索这个充满可能性的领域。欢迎一起交流学习。原创 2025-03-11 10:00:39 · 974 阅读 · 0 评论 -
Java|锁机制
Java中的锁机制通过提供互斥访问、保证内存可见性、保证原子性和线程同步等手段,确保了多线程环境下对共享资源的安全访问。同时,Java提供了多种锁策略和具体的锁实现,以满足不同场景下的需求。原创 2025-01-02 15:03:15 · 683 阅读 · 0 评论 -
Java|List实现去重操作
在选择判断List中是否有重复元素的方法时,应根据具体需求权衡多个因素。如果性能是首要考虑因素,并且不关心元素的顺序,那么使用HashSet是一个很好的选择。如果希望代码更加简洁和现代化,并且可以接受一定的性能开销,那么StreamAPI是一个不错的选择。如果原始List的顺序很重要(尽管在重复判断任务中顺序并不直接影响结果),那么可以使用。在实际应用中,应根据具体场景选择合适的方法。原创 2025-01-02 14:01:26 · 649 阅读 · 0 评论 -
JVM优化之GC
JVM中的GC优化是一个复杂而关键的任务。通过深入理解GC的基本原理与算法、选择合适的垃圾回收器、调整堆内存大小与比例、启用GC日志与分析、优化代码与数据结构以及持续监控与调优等措施,可以显著提高Java应用程序的性能和稳定性。同时,也需要注意避免内存泄漏、平衡吞吐量与响应时间以及考虑硬件与操作系统差异等挑战。原创 2025-01-02 13:41:49 · 822 阅读 · 0 评论 -
MVC和设计模式的关系
MVC(Model-View-Controller)是一种软件架构设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这三个组件各自承担不同的职责,共同协作以完成应用程序的功能。模型(Model):负责管理应用程序的数据和业务逻辑。它是应用程序的核心部分,包含了所有的业务规则和数据操作。视图(View):负责展示用户界面,显示模型中的数据。它是用户与应用程序交互的窗口,可以是HTML页面、JSP文件、Thymeleaf模板等。原创 2024-12-31 14:33:55 · 466 阅读 · 0 评论 -
Spring自动注入和手动实例化
依赖管理:自动注入通过Spring容器管理对象的依赖关系,降低了耦合度;而手动实例化需要开发者自己管理依赖关系,可能导致耦合度增加。代码简洁性:自动注入通过配置文件或注解简化了对象创建和依赖配置的代码;而手动实例化需要编写更多的代码来创建和配置对象。测试与可维护性:自动注入使得对象易于替换和测试,提高了代码的可维护性和可扩展性;而手动实例化可能导致测试困难和维护成本增加。实际开发中,应根据项目的具体需求和场景选择合适的对象创建方式。原创 2024-12-31 14:05:05 · 424 阅读 · 0 评论 -
Java|自定义注解
首先,你需要使用@interface关键字来定义一个注解。注解的定义可以包含元素(类似于类的属性),这些元素可以有默认值。元素使用value()作为默认名称时,在使用注解时可以省略元素名。java复制代码// 指定注解的保留策略为运行时,这样可以在运行时通过反射访问注解// 指定注解可以应用的Java元素类型,这里是方法和类// 定义注解的元素,这里是一个名为description的字符串元素// 可以定义更多元素...原创 2024-12-31 13:56:07 · 360 阅读 · 0 评论 -
Java|OOP指针压缩
Java中,(ordinary object pointer)是一个指向对象的托管指针,指是在Java虚拟机(JVM)中对对象引用(或指针)进行压缩的技术。这种技术主要用于减少内存占用并提高性能,特别是在64位系统上。原创 2024-12-31 13:53:43 · 908 阅读 · 0 评论 -
Java|Comparable 和 Comparator
定义顺序Comparable:定义对象的自然排序顺序。Comparator:定义对象的自定义排序顺序。实现位置Comparable:由类自身实现。Comparator:由外部类实现,可以有多个实现。灵活性Comparable:比较逻辑与类绑定,灵活性较差。Comparator:比较逻辑与类分离,灵活性高,可以定义多种排序方式。使用场景Comparable:适用于自然排序。Comparator:适用于多种排序需求。通过理解和使用这两个接口,你可以更好地控制Java集合框架中的排序行为。原创 2024-12-31 11:50:43 · 331 阅读 · 0 评论 -
Java进阶|序列化和反序列化
序列化:Java序列化是指将Java对象的状态转换为字节序列的过程。通过序列化,可以将对象存储到磁盘中或通过网络进行传输。序列化后的对象可以保持其完整性和可传递性,核心作用是对象状态的保存与重建。反序列化:Java反序列化是指将字节序列恢复为Java对象的过程。通过反序列化,可以读取存储在磁盘中或网络上的对象,并重新获取对象的引用。原创 2024-12-30 15:12:10 · 426 阅读 · 0 评论 -
Java|Map原理
Map是Java集合框架中的一个接口,它用于存储键值对(key-value pairs)。Map中的每个键都是唯一的,并且每个键都映射到一个值。Map接口提供了多种方法来操作这些键值对,如添加、获取、删除等。原创 2024-12-30 14:07:45 · 740 阅读 · 0 评论 -
Java、K8s和Docker如何实现自动化
Java、K8s(Kubernetes)和Docker可以协同工作,以实现应用程序的自动化部署、管理和扩展。原创 2024-12-30 13:51:46 · 1098 阅读 · 0 评论 -
聊聊Java反射
Java反射机制是一种在运行时(Runtime)分析和操作类、接口、字段(Field)和方法(Method)的能力。它允许程序在运行时查询和使用任何类的信息,包括私有的和受保护的成员,以及动态地创建对象和调用方法。原创 2024-12-30 13:28:55 · 768 阅读 · 0 评论 -
聊聊BigDecimal
BigDecimal是Java中的一个类,位于java.math包下。它提供了在Java应用中进行精确的小数运算的能力。与float和double提供的浮点数运算相比,BigDecimal可以避免在运算过程中因为无法精确表示而产生的误差积累。原创 2024-12-27 17:19:35 · 362 阅读 · 0 评论 -
策略模式和if-else
策略模式和if-else语句各有优缺点,选择哪种方法取决于具体的应用场景和需求。如果条件逻辑复杂且需要动态变化,策略模式更加适合;如果条件逻辑简单且固定,if-else语句可能更加简洁高效。在实际开发中,应根据具体情况灵活选择。原创 2024-12-27 17:10:35 · 418 阅读 · 0 评论 -
Java躲不开的话题:多线程编程
Java多线程编程是Java编程中的重要组成部分,它允许开发者创建多个线程来并发执行代码,从而充分利用现代多核处理器的性能。多线程编程不仅可以提高程序的执行效率,还可以增强程序的响应性和用户体验。然而,多线程编程也带来了复杂性,如线程安全、同步、死锁等问题。本文将深入探讨Java多线程编程的各个方面,并通过代码示例来展示其实际应用。原创 2024-12-27 16:14:25 · 973 阅读 · 0 评论 -
new Integer()与Integer.valueOf()区别
new Integer()和Integer.valueOf()的区别主要体现在对象的创建方式和内存管理方法原创 2024-12-26 13:35:25 · 496 阅读 · 0 评论 -
Java编程性能提升技巧
Java编程中,性能优化是确保程序高效运行的关键。以下是一些性能提升技巧。原创 2024-12-25 15:04:30 · 382 阅读 · 0 评论 -
浅谈Java基础类
Java基础类为开发者提供了丰富的功能和工具,是构建Java应用程序的基础。熟练掌握这些基础类库,对于提高开发效率和编写高质量的Java代码至关重要。原创 2024-12-18 16:20:24 · 652 阅读 · 0 评论
分享