找到 343 篇文章 关于 Java 编程
5K+ 浏览量
以下是 Java 中 HashMap 和 ConcurrentHashMap 类的一些显著区别。HashMapConcurrentHashMap同步HashMap 不是同步的。ConcurrentHashMap 是同步的。线程安全HashMap 不是线程安全的。ConcurrentHashMap 是线程安全的。迭代器类型HashMap 迭代器是快速失败的,如果在迭代期间发生并发修改,ArrayList 会抛出 ConcurrentModificationException。ConcurrentHashMap 是故障安全的,在迭代期间永远不会抛出 ConcurrentModificationException。空值HashMap 允许键和值为 null。ConcurrentHashMap 不允许键/值为 null。它将抛出 NullPointerException。性能HashMap 速度更快。ConcurrentHashMap 比 HashMap 慢。自 Java 版本 1.21.5 起示例import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; public class Tester { public static void main(String[] args) { List arrayList = new ArrayList(); ... 阅读更多
3K+ 浏览量
以下是 Java 中 ArrayList 和 CopyOnWriteArrayList 类的一些显著区别。ArrayListCopyOnWriteArrayList同步ArrayList 不是同步的。CopyOnWriteArrayList 是同步的。线程安全ArrayList 不是线程安全的。CopyOnWriteArrayList 是线程安全的。迭代器类型ArrayList 迭代器是快速失败的,如果在迭代期间发生并发修改,ArrayList 会抛出 ConcurrentModificationException。CopyOnWriteArrayList 是故障安全的,在迭代期间永远不会抛出 ConcurrentModificationException。其背后的原因是 CopyOnWriteArrayList 在每次修改时都会创建一个新的数组列表。删除操作ArrayList 迭代器支持在迭代期间删除元素。CopyOnWriteArrayList.remove() 方法如果尝试在迭代期间删除元素,则会抛出异常。性能ArrayList 速度更快。CopyOnWriteArrayList 比 ArrayList 慢。自 Java 版本 1.21.5 起示例import java.util.Iterator; import java.util.concurrent.CopyOnWriteArrayList; public class Tester { ... 阅读更多
377 浏览量
java.util.Deque 接口是 java.util.Queue 接口的子类型,它支持在两端插入和删除元素。接口声明public interface Deque extends QueueArrayDeque 类java.util.ArrayDeque 类提供可调整大小的数组并实现 Deque 接口。以下是关于数组 Deques 的重要要点:数组 deques 没有容量限制,因此它们根据需要增长以支持使用。它们不是线程安全的;在没有外部同步的情况下。它们不支持多个线程的并发访问。数组 deques 中不允许使用空元素。它们比 Stack 和 LinkedList 快。此类及其迭代器实现了 Collection 和 Iterator 的所有可选方法... 阅读更多
4K+ 浏览量
类声明public class CopyOnWriteArrayList extends Object implements List, RandomAccess, Cloneable, SerializableCopyOnWriteArrayList 是 ArrayList 的线程安全变体,其中可以更改 ArrayList 的操作(add、update、set 方法)会创建底层数组的克隆。CopyOnWriteArrayList 用于线程环境中,其中读取操作非常频繁,而更新操作很少。CopyOnWriteArrayList 的迭代器永远不会抛出 ConcurrentModificationException。对 CopyOnWriteArrayList 的任何类型的修改都不会在迭代期间反映出来,因为迭代器已创建。在迭代中不支持诸如 remove、set 和 add 之类的列表修改方法。此方法将抛出 UnsupportedOperationException。可以将 null 添加到... 阅读更多
549 浏览量
类声明public class CopyOnWriteArraySet extends AbstractSet implements SerializableCopyOnWriteArraySet 类在内部使用 CopyOnWriteArrayList 进行所有操作,因此具有 CopyOnWriteArrayList 的基本属性。CopyOnWriteArraySet 是线程安全的。CopyOnWriteArraySet 用于线程环境中,其中读取操作非常频繁,而更新操作很少。CopyOnWriteArraySet 的迭代器永远不会抛出 ConcurrentModificationException。对 CopyOnWriteArraySet 的任何类型的修改都不会在迭代期间反映出来,因为迭代器已创建。在迭代中不支持诸如 remove、set 和 add 之类的集合修改方法。此方法将抛出 UnsupportedOperationException。CopyOnWriteArraySet 方法以下是 CopyOnWriteArraySet 类中可用的一些重要方法。序号方法 & ... 阅读更多
5K+ 浏览量
我们可以使用 Java 的 BufferedReader 类读取文件中的字符。请参阅下面的示例:示例考虑类路径中的以下文本文件。test.txt这是第 1 行 这是第 2 行 这是第 3 行 这是第 4 行 这是第 5 行 这是第 6 行 这是第 7 行 这是第 8 行 这是第 9 行 这是第 10 行Tester.javaimport java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; public class Tester { private static final String FILE_PATH = "data.txt"; public static void main(String args[]) throws IOException { ... 阅读更多
547 浏览量
我们可以通过将文件读入字符串,然后根据“\r”模式进行分割来读取文件中的段落。请参阅下面的示例:示例考虑类路径中的以下文本文件。test.txt这是第 1 行 这是第 2 行 这是第 3 行 这是第 4 行 这是第 5 行 这是第 6 行 这是第 7 行 这是第 8 行 这是第 9 行 这是第 10 行Tester.javaimport java.io.File; import java.io.FileInputStream; import java.io.IOException; public class Tester { public static void main(String args[]) throws IOException { FileUtil fileUtil = ... 阅读更多
1K+ 浏览量
本文提供了一个如何创建简单 JDBC 应用程序的示例。这将向您展示如何打开数据库连接、执行 SQL 查询以及显示结果。创建 JDBC 应用程序构建 JDBC 应用程序涉及以下六个步骤:导入包:需要包含数据库编程所需的 JDBC 类所在的包。大多数情况下,使用 import java.sql.* 就足够了。注册 JDBC 驱动程序:需要初始化驱动程序,以便您可以打开与数据库的通信通道。打开连接:需要使用 DriverManager.getConnection() 方法创建 Connection 对象,该对象表示... 阅读更多
905 浏览量
SimpleDateFormat 是一个用于以区域敏感方式格式化和解析日期的具体类。SimpleDateFormat 允许您首先为日期时间格式选择任何用户定义的模式。示例实时演示import java.util.*; import java.text.*; public class DateDemo { public static void main(String args[]) { Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println("Current Date: " + ft.format(dNow)); } }这将产生以下结果-输出Current Date: Sun 2004.07.18 at 04:14:09 PM PDT简单日期格式... 阅读更多