Java 函数式编程范式

1. 概述 在本教程中,我们将了解函数式编程范式的核心原则以及如何在 Java 编程语言中使用它们。 我们还将介绍一些高级函数式编程技术。这将帮助我们了解 Java 中的函数式编程的好处。 2. 什么是函数式编程? 基本上,函数式编程是一种编程风格,它将计算看作为是数学函数的求值。…

hello hello 发布于 2024-05-11

Java Stream 编程

一、引言 1、流式编程的概念和作用 Java 流(Stream)是一连串的元素序列,可以进行各种操作以实现数据的转换和处理。流式编程的概念基于函数式编程的思想,旨在简化代码,提高可读性和可维护性。 Java Stream 的主要作用有以下几个方面: 简化集合操作:使用传统的 for…

hello hello 发布于 2024-05-11

基于 Java NIO 实现简单的 HTTP 服务器

1.简介 本文是 上一篇文章 实践篇,在上一篇文章中,我分析了选择器 Selector 的原理。本篇文章,我们来说说 Selector 的应用,如标题所示,这里我基于 Java NIO 实现了一个简单的 HTTP 服务器。在接下来的章节中,我会详细讲解 HTTP 服务器实现的过程。另外,本文所对应的代码已经上传到 GitHub 上了,需要的自取,仓库地址为…

hello hello 发布于 2024-04-28

localhost 和 127.0.0.1 的区别是什么?

今天在网上逛的时候看到一个问题,没想到大家讨论的很热烈,就是标题中这个: localhost和127.0.0.1的区别是什么? 前端同学本地调试的时候,应该没少和localhost打交道吧,只需要执行 npm run 就能在浏览器中打开你的页面窗口,地址栏显示的就是这个 http://localhost:xxx/index.html…

hello hello 发布于 2024-04-24

Java 线程池原理分析

1.简介 线程池可以简单看做是一组线程的集合,通过使用线程池,我们可以方便的复用线程,避免了频繁创建和销毁线程所带来的开销。在应用上,线程池可应用在后端相关服务中。比如 Web 服务器,数据库服务器等。以 Web 服务器为例,假如 Web 服务器会收到大量短时的 HTTP 请求,如果此时我们简单的为每个 HTTP…

hello hello 发布于 2024-04-24

AbstractQueuedSynchronizer 原理分析 – 独占/共享模式

1.简介 AbstractQueuedSynchronizer (抽象队列同步器,以下简称 AQS)出现在 JDK 1.5 中,由大师 Doug Lea 所创作。AQS 是很多同步器的基础框架,比如 ReentrantLock、CountDownLatch 和 Semaphore 等都是基于 AQS 实现的。除此之外,我们还可以基于…

hello hello 发布于 2024-04-24

Java CAS 原理分析

1.简介 CAS 全称是 compare and swap,是一种用于在多线程环境下实现同步功能的机制。CAS 操作包含三个操作数 — 内存位置、预期数值和新值。CAS 的实现逻辑是将内存位置处的数值与预期数值想比较,若相等,则将内存位置处的值替换为新值。若不相等,则不做任何操作。 在 Java 中,Java 并没有直接实现 CAS,CAS…

hello hello 发布于 2024-04-22

Java 线程同步组件 CountDownLatch 与 CyclicBarrier 原理分析

1.简介 在分析完 AbstractQueuedSynchronizer (以下简称 AQS)和 ReentrantLock 的原理后,本文将分析 java.util.concurrent 包下的两个线程同步组件 CountDownLatch 和 CyclicBarrier 。这两个同步组件比较常用,也经常被放在一起对比。通过分析这两个同步组件,可使我们对…

hello hello 发布于 2024-04-22

Java 重入锁 ReentrantLock 原理分析

Java 重入锁 ReentrantLock 原理分析 1.简介 可重入锁 ReentrantLock 自 JDK 1.5 被引入,功能上与 synchronized 关键字类似。所谓的可重入是指,线程可对同一把锁进行重复加锁,而不会被阻塞住,这样可避免死锁的产生。ReentrantLock 的主要功能和 synchronized…

hello hello 发布于 2024-04-22

AbstractQueuedSynchronizer 原理分析 – Condition 实现原理

1. 简介 Condition 是一个接口,AbstractQueuedSynchronizer 中的 ConditionObject 内部类实现了这个接口。 Condition 声明了一组 等待/通知 的方法,这些方法的功能与 Object 中的 wait/notify/notifyAll 等方法相似。这两者相同的地方在于,它们所提供的 等待/通知…

hello hello 发布于 2024-04-22
上一页 下一页