Java教程与面试题

     

Java 并发:线程、线程池和执行器全面教程

30 9K

本指南深入研究了Executor接口的内部工作原理及其各种实现。并发的基础知识想象一下餐厅厨房的单一流程。厨房本身就代表了这个过程,准备食物、洗碗和接受订单等各种任务同时发生。现在,线程作为厨房里的厨.

Java中查找数组多数元素的4种方法

9 7K

在本教程中,我们将探索查找数组中多数元素的不同方法。对于每种方法,我们将提供各自的代码实现以及时间和空间复杂性的分析。让我们了解一下查找数组中多数元素的问题。我们得到一个整数数组,我们的目标是确定其中.

Java中查找列表的峰值元素

10 11K

数组中的峰值元素对于许多算法都很重要,可以提供对数据集特征的宝贵见解。在本教程中,我们将探讨峰元素的概念,解释其重要性并探索在单峰和多峰场景中识别它们的有效方法。什么是峰值元素?数组中的峰值元素定义为.

Java中获取URI最后一个路径段的4种方法

13 4K

使用统一资源标识符 ( URI ) 是一种常见操作,主要用于Web 开发和文件管理。此外,最常见的需求之一是获取 URL 中的最后一个路径段(最后一个段是最后一个“/”字符之后的最后一个段)。在本教程.

Java中使用Jsoup解析HTML表格教程

10 11K

Jsoup是一个用于抓取 HTML 页面的开源库。它提供了一个使用 DOM API 方法进行数据解析、提取和操作的 API。在本文中,我们将了解如何使用 Jsoup 解析 HTML 表。我们将使用 J.

Java中Blowfish加密算法

45 7K

Blowfish加密算法最初设计为DES加密算法的替代方案,是当今最流行的加密算法之一。Blowfish 是一种对称密钥分组密码,由Bruce Schneier于 1993 年设计。该算法的块大小为6.

Java中在二叉搜索树中查找节点的父节点

24 8K

二叉搜索树(BST)是一种帮助我们有效解决现实世界问题的数据结构。什么是二叉搜索树?BST 是一棵树,其中每个节点最多指向两个节点,通常称为左子节点和右子节点。此外,每个节点的值都大于左子节点且小于右.

Java中使用FlatBuffer实现序列化

32 8K

在本教程中,我们将探索Java 中的FlatBuffers并使用它执行序列化和反序列化。Java序列化是将 Java 对象转换为可以通过网络传输或保存在文件中的字节流的过程。Java 通过java.i.

Java中计算整数中唯一数字数量的3种方法

34 2K

给定一个整数,我们的目标是计算它包含多少个唯一数字。例如,整数 567890 有六个唯一数字,而 115577 只有三个唯一数字(1、5 和 7)。1、使用集合查找整数中唯一位数的最直接方法是使用Se.

Java中查找给定数字下最大素数的2种方法

21 2K

寻找小于给定数的最大素数是计算机科学和数学中的一个经典问题。在这个简短的教程中,我们将探讨在 Java 中解决此问题的两种方法。1、使用暴力让我们从最直接的方法开始。我们可以通过从给定数向后迭代直到找.

Java中获取字符串中前n个字符的5种方法

43 5K

在这个简短的教程中,我们将探索在 Java 中获取字符串的前 n 个字符的不同方法。首先,我们将学习如何使用核心 JDK 方法和类来执行此操作。然后,我们将了解如何使用Apache Commons L.

Java中实现TreeMap缓存驱逐策略

26 5K

为了提高应用程序速度,缓存是将经常访问的数据存储在内存中的一种方法。当缓存填满时,缓存逐出策略会决定必须删除哪些内容。Java 的 TreeMap 提供了排序映射实现,它可用于创建具有独特驱逐策略的缓.

Java中查找字符串中最大数字的3种方法

53 3K

通常,在处理多个编程场景时,会出现包含数字的字符串,并且可能需要找到这些值中最大的值。1、字符串解析与比较最简单的方法包括读取字符串并识别数字子字符串。我们可以通过比较前缀来检测最大的数字。让我们举个.

Java中检查字符串是否互相旋转或镜像反射

24 10K

当我们使用 Java 工作时,字符串操作和比较是日常任务。字符串是原始字符的序列,在 Java 中,它包装在String类中。尽管两个字符串可能是不同的对象,但我们可以比较它们的内部字符并检查例如它们.

Java中从流中获取一系列数据项

21 2K

Stream API在 Java 8 中引入,彻底改变了开发人员使用对象集合的方式。流提供了强大的操作来简洁、声明性地处理和操作数据。使用流时的一个常见任务是根据某些标准或索引从流中提取一系列项目。在.

Java中CompletableFuture中4种异步编程方法

30 8K

Java的CompletableFuture框架提供了强大的异步编程能力,方便任务的并发执行。1、runAsync() 与 SupplyAsync()之间的区别CompletableFuture是 J.

Java中检查字符串是否Base64编码的2种方法

62 2K

在Java编程中,我们经常涉及数据编码和解码。此外,Base64 编码很流行,用于将二进制数据转换为ASCII文本格式。Base64编码是什么Base64 是一种二进制到文本的编码方案,可将二进制数据.

Java中切杆问题的3种解决方案

24 7K

切杆问题(棒切割:Rod Cutting Problem)是一个经典的优化问题,涉及找到将棒切割成碎片的最佳方法,以最大化总收入。什么是切杆问题假设我们有一根长度为 n 的杆,我们可以灵活地将这根杆切.

什么是GraalVM、AOT 和 JIT?

33 5K

用本指南来了解 GraalVM 是什么、它的工作原理以及即时 (JIT) 编译与提前 (AOT) 编译的比较。如果 Graal 的本机可执行文件几乎立即启动、更小并且消耗更少的资源 , 为什么您会想在.

Java中创建正则表达式匹配流

47 2K

正则表达式(通常称为 regex)是一种强大的模式匹配机制。它们使我们能够识别字符串中的特定模式,极大地帮助完成数据提取、验证和转换等任务。让我们深入了解如何在 Java 中创建正则表达式匹配流。什么.

Java中屏蔽电子邮件地址和电话号码

33 2K

隐私和数据安全是软件开发的重要元素。屏蔽敏感详细信息(例如用户的电子邮件地址和电话号码)通常是用于保护用户信息并防止其泄露的一种程序。在本教程中,我们将研究如何在 Java 中屏蔽电子邮件地址和电话号.

Java中将零移至数组末尾

36 3K

当我们在 Java 中使用数组时,一项常见任务是重新排列数组以优化其结构。一种这样的场景涉及将零移动到数组的末尾。在本教程中,我们将探索使用 Java 实现此任务的不同方法。在我们深入实现之前,我们首.

Java中查找列表中第一个非重复元素的4种方法

37 6K

在本教程中,我们将探讨查找列表中第一个非重复元素的问题。我们将首先了解问题陈述,然后实施一些方法来实现预期结果。给定一个元素列表,任务是找到列表中第一个不重复的元素。换句话说,我们需要识别列表中仅出现.

Java中可变对象与不可变对象

43 5K

在 Java 中使用对象时,了解可变对象和不可变对象之间的区别至关重要。这些概念影响 Java 代码的行为和设计。在本教程中,我们将探讨可变对象和不可变对象的定义、示例、优点和注意事项。什么是不可变对.

Java中使用 JDBC 分页

32 10K

大量的表读取可能会导致我们的应用程序内存不足。它们还会给数据库增加额外的负载,并且需要更多的带宽来执行。读取大型表时推荐的方法是使用分页查询。本质上,我们读取数据的子集(页面),处理数据,然后移动到下.

Java中原子操作的比较和交换 (CAS)

34 7K

在本文中,我们将深入研究 Java CAS 的机制,揭开它的神秘面纱并了解它如何在实现非阻塞方法方面发挥关键作用。什么是比较和交换 (CAS) 想象一下,你和朋友各有一篮子苹果,你们都想交换一些苹果。.

Java中将UUID存储为Base64字符串3种方法

65 9K

使用 Base64 编码字符串是一种广泛采用的存储通用唯一标识符 (UUID) 的方法。与标准 UUID 字符串表示形式相比,这提供了更紧凑的结果。在本文中,我们将探讨将 UUID 编码为 Base6.

Java中用流stream计算加权平均值

54 9K

在本文中,我们将探讨解决同一问题的几种不同方法 - 计算一组值的加权平均值。什么是加权平均值?我们通过将所有数字相加然后除以数字的数量来计算一组数字的标准平均值。例如,数字 1、3、5、7、9 的平均.

Java中CountDownLatch与Semaphore比较

40 6K

在 Java 多线程中,线程之间的有效协调对于确保正确同步和防止数据损坏至关重要。两种常用的线程协调机制是CountDownLatch和Semaphore。在本教程中,我们将探讨CountDownLa.

Java中游程编码和解码

33 8K

在计算机科学中,数据压缩技术在优化存储和传输效率方面发挥着重要作用。一种经受住时间考验的技术是游程编码(RLE)。在本教程中,我们将了解 RLE 并探索如何在 Java 中实现编码和解码。什么是游程编.