transient
把一个对象的表示转化为字节流的过程称为串行化serialization,从字节流中把对象重建出来称为反串行化deserialization,transient 为不应被串行化的数据提供了一个语言级的标记数据方法。 对象的序列化(serialization)非常影响I/O的性能,尽量少用。对不需序列化的类的域使用transient关键字,以减少序列化的数据量。
|
volatile 在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。这在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。要解决这个问题,只需要像在本程序中的这样,把该变量声明为volatile(不稳定的)即可,这就指示JVM,这个变量是不稳定的,每次使用它都到主存中进行读取。一般说来,多任务环境下各任务间共享的标志都应该加volatile修饰。 对象的序列化(serialization)非常影响I/O的性能,尽量少用。对不需序列化的类的域使用transient关键字,以减少序列化的数据量。 |
immutable
不可变对象的一个经典的例子是String类的实例。
|
|
相关推荐
Java 中的 static 关键字 Java 中的 static 关键字是用于声明类的成员变量和成员方法的,它可以使得变量和方法属于类本身,而不属于某个对象。静态变量也称为类变量,静态方法也称为类方法。静态变量和静态方法可以...
在 Java 语言中,有一些被赋予特定含义,用作专门用途的字符序列称为关键字。Java 语言使用的关键字包括 boolean、byte、char、short、int、long、float、double 等基本数据类型,package、import 等包声明和包引入...
在Java编程语言中,`this`关键字是一个非常关键的概念,它代表了当前对象的引用。...通过以上几个方面,我们可以看到`this`在不同场景下的应用,希望这些示例能帮助你更好地理解`this`关键字在Java中的作用。
面向对象部分让人搞晕的几个关键字,我这里专门针对这几个关键字进行了整理相关的面试题,只要你能做对80%,就证明你面向对象基本学懂了
本文档系统列举了Java的关键字及其用法分类,总共分为以下几个类别:访问控制、类、变量修饰符、流程控制、数据类型、异常处理、包和变量引用、运算符等。 访问控制 * public:公共的,所有类都可以访问。 * ...
关键字高亮通常涉及到以下几个核心概念: 1. **颜色主题**:在Java Swing中,你可以通过自定义颜色主题来改变关键字的颜色。这可以通过创建并应用LAF(Look and Feel)实现,LAF允许开发者改变组件的视觉样式。 2....
总结来说,`volatile`关键字是Java并发编程中一个非常重要的概念。它不仅解决了多线程环境下的可见性问题,还能够在一定程度上保证有序性。然而,它并不保证复合操作的原子性,因此在设计并发程序时,还需要根据具体...
Java 线程 volatile 关键字详解 Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。volatile 变量的同步性较差,但它有时更简单并且开销更低。volatile 变量可以被看作是一种 “程度较轻的 ...
在Java编程中,`synchronized`关键字是用来解决多线程环境下的线程安全问题的关键工具。线程安全意味着当多个线程访问同一段代码时,该代码能够正确地处理并发情况,不会出现数据不一致或者资源竞争的问题。本文将...
当我们使用`new`关键字时,实际上是执行了以下几个步骤: 1. 分配内存:Java虚拟机(JVM)在堆内存中为新对象分配所需的空间。这个过程包括为对象的所有字段分配内存。 2. 初始化:接下来,对对象的成员变量进行...
在Java编程语言中,`super`关键字是一个非常重要的概念,它用于引用当前对象的父类。`super`关键字主要用于以下几种情况:调用父类的构造器、访问父类的成员变量以及调用父类的非私有方法。下面我们将详细探讨`super...
本文将深入解析几个关键的Java关键字及其用法。 首先,`instanceof`关键字用于判断一个对象是否属于某个类、接口或其子类/实现类。它的基本形式是`boolean result = obj instanceof Class`。需要注意的是,`obj`...
要实现这个功能,我们需要以下几个关键知识点: 1. **Java GUI(图形用户界面)**:项目中使用GUI来创建记事本界面,这通常涉及到Java的Swing或JavaFX库。例如,`JFrame`用于创建窗口,`JTextArea`用于显示和编辑...
在Java编程语言中,`transient`关键字与对象的序列化(serialization)机制密切相关,它在处理对象状态的持久化时扮演着关键角色。本文将深入探讨`transient`关键字的功能、用途以及它如何影响Java对象的序列化过程。 ...
在Java编程中,synthetic关键字主要用于以下几个方面: 1.内部类中的字段访问:在Java中,内部类可以访问外部类的私有成员,这是通过synthetic字段实现的。例如,下面的代码中,内部类inner可以访问外部类parent的...
`volatile`最适合用于以下几个场景: 1. 当一个变量只被一个线程修改,但被多个线程共享,且修改操作不依赖当前值。 2. 当一个变量被用来作为状态标记,表明某个计算已完成或者线程应停止等待。 3. 当多个线程需要...
Java 编程语言中,关键字和标识符是两个非常重要的概念,它们在编程中扮演着不同的角色。关键字是 Java 语言中预定义的单词,它们具有特殊的含义和用途,而标识符则是开发者自行定义的字符序列,用来命名变量、方法...
1. 用于定义数据类型的关键字:包括class、interface、byte、short、int、long、float、double、char、boolean和void等11个关键字。 2. 用于定义流程控制的关键字:包括if、else、switch、case、default、while、do...
下面我们将深入探讨`this`关键字的几个主要用法。 1. **成员变量的访问** 当类中的局部变量和成员变量名称相同时,`this`关键字用于区分它们。例如: ```java public class Student { String name; // 成员变量...
一文详解java中的this关键字 最近在看《java编程思想》感觉解决了很多以前学习Java遇到的疑惑。这里详细探讨一下this关键字的几大使用范畴:(应该也就只有以下几种用法) 首先this关键字只能在非静态方法内部使用。...