乐观锁和悲观锁介绍

如果将悲观锁(Pessimistic Lock)和乐观锁(Optimistic Lock)对应到现实生活中来。悲观锁有点像是一位比较悲观(也可以说是未雨绸缪)的人,总是会假设最坏的情况,避免出现问题。乐观锁有点像是一位比较乐观的人,总是会假设最好的情况,在要出现问题之前快速解决问题。 什么是悲观锁?…

hello hello 发布于 2024-11-30

功能强大,代码优雅:Java8真实案例Stream大数据集高效之旅

Java8新特性 Java8 新增了非常多的特性,我们主要讨论以下几个: Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。 Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。 Java 8 Stream API…

hello hello 发布于 2024-11-28

try-catch 会影响性能吗?

在编程中,异常处理是一个重要的概念,它允许程序在运行时捕获和处理错误,而不是简单地崩溃。在许多编程语言中,包括Java、C++、C#和Python, try-catch 结构是实现这种异常处理的常用机制。那么, try-catch 是否会影响性能?这篇文章我们来聊一聊。 异常处理的基本原理 在了解 try-catch…

hello hello 发布于 2024-11-28

Java CompletableFuture 介绍(二)

异常处理 你可以通过 handle() 方法来处理任务执行过程中可能出现的抛出异常的情况。 public <U> CompletableFuture<U> handle( BiFunction<? super T, Throwable, ? extends U> fn) { return uniHandleStage(null, fn); } public…

hello hello 发布于 2024-11-27

Java CompletableFuture 介绍(一)

实际项目中,一个接口可能需要同时获取多种不同的数据,然后再汇总返回,这种场景还是挺常见的。举个例子:用户请求获取订单信息,可能需要同时获取用户信息、商品详情、物流信息、商品推荐等数据。 如果是串行(按顺序依次执行每个任务)执行的话,接口的响应速度会非常慢。考虑到这些任务之间有大部分都是 无前后顺序关联 的,可以 并行执行…

hello hello 发布于 2024-11-27

Java LinkedHashMap 介绍(二)

LinkedHashMap构造方法 LinkedHashMap 构造方法有 4 个实现也比较简单,直接调用父类即 HashMap 的构造方法完成初始化。 public LinkedHashMap() { super(); accessOrder = false; } public LinkedHashMap(int initialCapacity) {…

hello hello 发布于 2024-11-18

Java LinkedList 介绍

LinkedList 简介 LinkedList 是一个基于双向链表实现的集合类,经常被拿来和 ArrayList 做比较。 不过,我们在项目中一般是不会使用到 LinkedList 的,需要用到 LinkedList 的场景几乎都可以使用 ArrayList 来代替,并且,性能通常会更好!就连 LinkedList 的作者约书亚 · 布洛克(Josh…

hello hello 发布于 2024-11-18

Java Atomic 原子类介绍

Atomic 翻译成中文是“原子”的意思。在化学上,原子是构成物质的最小单位,在化学反应中不可分割。在编程中, Atomic 指的是一个操作具有原子性,即该操作不可分割、不可中断。即使在多个线程同时执行时,该操作要么全部执行完成,要么不执行,不会被其他线程看到部分完成的状态。 原子类简单来说就是具有原子性操作特征的类。…

hello hello 发布于 2024-11-18

Java LinkedHashMap 介绍(一)

LinkedHashMap 简介 LinkedHashMap 是 Java 提供的一个集合类,它继承自 HashMap ,并在 HashMap 基础上维护一条双向链表,使得具备如下特性: 支持遍历时会按照插入顺序有序进行迭代。 支持按照元素访问顺序排序,适用于封装 LRU 缓存工具。…

hello hello 发布于 2024-11-18
上一页 下一页