9K+ 浏览量
volatile 关键字用于多线程环境中,两个线程同时读取和写入同一个变量。volatile 关键字将更改直接刷新到主内存,而不是 CPU 缓存。另一方面,transient 关键字用于序列化。标记为 transient 的字段不能成为序列化和反序列化的一部分。如果我们不想保存任何变量的值,则可以使用 transient 关键字与该变量一起使用。序号关键VolatileTransient1基本Volatile 关键字用于将更改直接刷新到主内存transient 关键字用于在序列化期间排除变量2.默认值Volatile ... 阅读更多
2K+ 浏览量
List 和 Set 都是属于集合框架的接口。这两个接口都扩展了 Collection 接口。它们都用于将对象的集合存储为一个单元。在 jdk1.2 之前,我们习惯使用数组、向量和哈希表将对象作为单个单元进行分组。序号关键ListSet1位置访问List 提供对集合中元素的位置访问。Set 不提供对集合中元素的位置访问。2实现List 的实现有 ArrayList、LinkedList、Vector、Stack。Set 接口的实现有 HashSet 和 LinkedHashSet。3重复我们可以在列表中存储重复元素。我们不能在 Set 中存储重复元素。4排序List 保持 ... 阅读更多
13K+ 浏览量
StringBuffer 和 StringBuilder 都是可变类,可用于对字符串对象执行操作,例如字符串反转、字符串连接等。我们可以修改字符串而不创建字符串的新对象。StringBuffer 是线程安全的,而 StringBuilder 不是线程安全的。因此,它比 StringBuffer 快。此外,字符串连接 + 运算符在内部使用 StringBuffer 或 StringBuilder 类。以下是区别。序号关键StringBufferStringBuilder1基本StringBuffer 在 Java 的初始版本中引入它是在 Java 5 中引入的2同步它是同步的它不是同步的3性能它是线程安全的。因此,多个线程不能 ... 阅读更多
6K+ 浏览量
JVM 将内存空间划分为两个部分,一个是栈,另一个是堆空间。栈空间主要用于存储方法执行顺序和局部变量。栈始终以 LIFO 顺序存储块,而堆内存用于动态分配内存块的分配和释放。分配给堆的内存在以下事件之一发生之前一直存在:程序终止内存释放相反,分配给栈的内存在函数返回之前一直存在。以下是区别。序号关键栈堆内存1基本栈内存用于存储生命周期非常短的项目,例如局部变量、... 的引用变量 阅读更多
有两种方法可以让多个线程获得共享资源的锁。一种是 Reentrant Lock(或 ReadWriteLock),另一种是使用 Synchronized 方法。ReentrantLock 类已在 Java 5 中的 Java 并发包中提供。它是 Lock 接口的实现,根据 Java 文档,Lock 接口的实现提供了比使用 synchronized 方法所能获得的更广泛的操作。序号关键ReentrantLockSynchronized1获取锁Reentrant lock 类提供 lock() 方法,以便线程获取共享资源的锁2释放锁要释放锁,... 阅读更多
28K+ 浏览量
有两种方法可以创建新的执行线程。一种是声明一个类作为 Thread 类的子类。此子类应覆盖 Thread 类的 run 方法。然后可以分配和启动子类的实例。创建线程的另一种方法是声明一个实现 Runnable 接口的类。然后该类实现 run 方法。然后可以分配类的实例,在创建 Thread 时将其作为参数传递,并启动它。每个线程都有一个名称用于识别目的。多个线程可以 ... 阅读更多
23K+ 浏览量
异常和错误都是 Throwable 类的子类。错误表示主要由于缺乏系统资源而发生的问题,并且我们的应用程序不应捕获此类问题。错误的一些示例是系统崩溃错误和内存不足错误。错误大多在运行时发生,即它们属于未经检查的类型。异常是在运行时和编译时可能发生的问题。它主要发生在开发人员编写的代码中。异常分为两类,即已检查异常和未经检查异常。序号关键错误异常1类型归类为未经检查的类型归类为 ... 阅读更多
3K+ 浏览量
序列化和外部化都是将对象转换为字节流并将字节流存储在数据库或内存中的过程。实现 java.io.Serializable 接口的类可以被序列化。另一方面,外部化用于根据应用程序中的需求进行自定义序列化。Externalization 扩展了 java.io.Serializable。序号关键序列化外部化1接口序列化是一个标记接口外部化包含两个方法 readExternal 和 writeExternal。2实现逻辑实现此接口的类将序列化或持久化 Java 对象的责任交给 JVM。JVM 使用 readObject 和 writeObject 进行序列化外部化通过覆盖 readExternal 和 writeExternal 方法将实现逻辑控制权提供给应用程序。3方式 ... 阅读更多
Comparable 和 comparator 都是可以用来对集合的元素进行排序的接口。Comparator 接口属于 java.util 包,而 comparable 属于 java.lang 包。Comparator 接口使用提供的两个对象对集合进行排序,而 comparable 接口比较“this”指的是提供给它的一个对象。序号关键ComparableComparator1方法Comparable 接口有一个方法 compareTo(Object a)Comparator 有一个方法 compare(Object o1, Object O2)2排序使用Collection.sort(List) 方法可用于对 Comparable 类型对象的集合进行排序。Collection.sort(List, Comparator) 方法可用于对 Comparator 类型对象的集合进行排序。3排序顺序Comparable 提供单个排序 ... 阅读更多
7K+ 浏览量
并发HashMap是在jdk1.5中引入的一个类。并发HashMap在添加或更新映射时仅对称为片段的桶级别应用锁。因此,并发HashMap允许对映射进行并发读写操作。同步HashMap(Collection.syncronizedHashMap())是Collection框架的一种方法。此方法对整个集合应用锁。因此,如果一个线程正在访问映射,则任何其他线程都无法访问相同的映射。序号键并发HashMap同步HashMap1实现它是一个实现并发HashMap和可序列化接口的类。它是在Collection类中的一个方法。2锁机制锁定部分锁定…阅读更多