transient:
把一个对象的表示转化为字节流的过程称为串行化serialization,从字节流中把对象重建出来称为反串行化deserialization,transient 为不应被串行化的数据提供了一个语言级的标记数据方法。
对象的序列化(serialization)非常影响I/O的性能,尽量少用。对不需序列化的类的域使用transient关键字,以减少序列化的数据量。
Volatile:
修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。
这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。
而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。
使用建议:在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。
由于使用volatile屏蔽掉了VM中必要的代码优化,所以在效率上比较低,因此一定在必要时才使用此关键字。
把一个对象的表示转化为字节流的过程称为串行化serialization,从字节流中把对象重建出来称为反串行化deserialization,transient 为不应被串行化的数据提供了一个语言级的标记数据方法。
对象的序列化(serialization)非常影响I/O的性能,尽量少用。对不需序列化的类的域使用transient关键字,以减少序列化的数据量。
Volatile:
修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。
这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。
而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。
使用建议:在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。
由于使用volatile屏蔽掉了VM中必要的代码优化,所以在效率上比较低,因此一定在必要时才使用此关键字。
发表评论
-
class 文件执行
2013-06-18 20:06 720windows: 假设要执行的文件为D:/test/Test ... -
top详解
2013-06-06 10:18 0top - 01:06:48 up 1:22, 1 user ... -
hibernate 复习
2013-05-29 14:27 01.hibernate saveOrUpdate方法和merg ... -
TCP/IP、Http、Socket总结
2013-05-21 10:59 724TCP/IP、Http、Socket的区别 ... -
lock和synchronized区别详解
2013-05-07 16:12 0一、代码层 synchronized ... -
(转)解读ClassLoader
2013-04-22 12:03 590ClassLoader一个经常出现又让很多人望而却步的词,本文 ... -
Java:重写equals()和hashCode()
2013-04-20 09:33 652什么时候需要重写equals( ... -
哈希函数详解
2013-04-20 09:33 513基本知识 Hash,一般翻 ... -
重载 重写
2013-04-19 11:37 0方法重写(子类重写) 1.发生方法重写的两个方法返回值、方法名 ... -
java concurrent 探秘 我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供
2013-03-12 12:24 404java concurrent 探秘 我们都知道,在JDK1 ... -
Comparator和Comparable的区别
2012-07-26 11:56 634一. 一个类实现了Camparable接口则表明这个 ... -
Eclipse
2012-07-02 17:50 601在Eclipse中查看JDK类库的源代码!!! 设置: 1 ... -
JAVA LIST遍历方法及其效率对比
2012-02-21 18:51 0Java代码 1.package com.zbalp ... -
Java异常处理之陋习
2012-02-20 10:32 602java 异常 你觉得自 ... -
serialVersionUID作用
2011-12-22 13:51 718序列化时为了保持版本的兼容性,即在版本升级时反序 ... -
(转)java synchronized详解
2011-09-16 10:30 686记下来,很重要。 Java语言的关键字,当它用来修饰一个方法或 ... -
代码模板
2011-09-07 10:39 709如何自定义eclipse中的代码模板: Eclipse有内置的 ... -
Java关键字this、super使用总结
2011-08-12 12:00 743好久没有对所学知识做总结了,发现好多都生疏了,为了巩固基础,对 ... -
(转)java访问权限修饰符public protected friendly private用法总结
2011-08-12 11:58 905首先声明:java中,friendly这个修饰符并没 ...
相关推荐
总的来说,熟练掌握Linux环境下Java编程的变量和关键字,了解并运用MyEclipse的快捷键,以及理解和运用Java方法,是每个Java开发者必备的技能。通过不断的实践和学习,我们可以提高编程效率,编写出更加优秀的Java...
深入理解 `final` 关键字可以帮助开发者写出更加安全、高效的代码。 首先,`final` 关键字可以用于声明变量。当一个变量被声明为 `final` 时,它的值一旦被赋值后就不能再改变。这适用于成员变量、局部变量以及静态...
总之,理解和掌握Java的关键字和保留字是学习Java编程的基础,它们决定了程序的结构和行为,是编写有效、合法Java代码的关键。在编写代码时,要避免使用这些保留字作为变量名或函数名,以免引发编译错误。
通过阅读这份笔记,你可以系统地学习和复习Java的基础知识,加深对关键字的理解,从而提升编程技能。无论是初学者想要入门,还是专业人士希望巩固基础,这都是一个非常有价值的参考资料。记得实践是检验真理的唯一...
在Java编程语言中,标识符号、关键字和类型是构建程序的基础元素。理解并熟练掌握这些概念对于编写高质量的Java代码至关重要。以下是对这些主题的详细解释: **标识符号(Identifiers)** 在Java中,标识符是程序员...
理解并熟练运用这些关键字是成为一名合格的Java程序员的基础。在实际开发中,我们需要根据需求灵活运用这些关键字来构建高效、可维护的代码。同时,随着Java版本的更新,也可能出现新的关键字,例如`assert`用于断言...
对于初学者来说,熟悉这些关键字对于理解和编写正确的Java程序至关重要。 #### 关键字(Keyword) Java关键字是指被Java语言本身赋予特定意义的标识符,它们不能作为变量名或类名等自定义标识符使用。Java中有53个...
综上所述,`super`关键字在Java中扮演着关键角色,它帮助我们理解和管理对象的继承关系,有效进行内存管理和方法调用。在编写复杂的继承结构时,正确使用`super`能够提高代码的可读性和维护性,同时充分利用Java的...
在Java编程语言中,提取文章关键字是一项常见的自然语言处理任务,它涉及到文本挖掘和信息检索领域。这个任务的目的是从一篇文章中识别出最具代表性的词语或短语,这些词汇通常反映了文章的主题和核心内容。在Java中...
### Java 变量与关键字详解 #### 一、关键字(Keywords) **1. 关键字概述** Java的关键字对编译器具有特殊的意义,它们用来表示特定的数据类型或程序结构等。关键字不能用作变量名、方法名、类名或包名。 **2. ...
这个主题“五个Java类揭秘多关键字搜索引擎”将带领我们深入理解如何利用Java来实现一个基础的多关键字搜索功能。通过分析提供的标签“源码”和“工具”,我们可以推测这是一个关于实际编程实践和代码解析的内容。 ...
Java语言是目前世界上最受欢迎的编程语言之一,以其跨平台、面向...理解和熟练使用这些关键字是成为一名合格的Java程序员的基础。在实践中,不断探索和应用这些关键字,将有助于你更好地驾驭Java这门强大的编程语言。
理解这些关键字对于编写有效的Java程序至关重要。需要注意的是,虽然像`const`和`goto`这样的关键字在Java中并未使用,但在某些情况下仍被视为保留字。此外,诸如`true`、`false`和`null`虽然不是关键字,但在Java中...
理解和掌握这些关键字对于编写有效的Java程序至关重要。本文将详细介绍Java中的一些核心关键字,并提供相应的解释和示例。 #### 关键字列表 根据给定的部分内容,我们可以列出以下Java关键字: 1. **abstract** 2...
总的来说,"JAVA文件关键字分析程序"是一个实用的代码分析工具,它能帮助Java开发者深入理解代码库,发现潜在的改进点,并为代码规范提供依据。通过使用和优化这样的工具,开发者可以不断提升代码质量和团队协作效率...
Java中的`synchronized`关键字是多线程编程中的一个重要概念,用于控制并发访问共享资源时的同步机制。在Java中,当多个线程试图同时访问和修改同一块代码或数据时,可能会导致数据不一致的问题。为了解决这个问题,...
理解这些关键字是学习Java的基础之一。本文将详细介绍Java中的50个常用关键字,并按照其功能类别进行分类。 #### 数据类型相关关键字 (10个) 1. **byte**: 表示8位带符号的整数类型。 2. **short**: 表示16位带符号...
根据提供的文件信息,我们可以梳理出Java中的关键词以及相关的...以上就是Java中的关键概念和语法结构的基本介绍,这些知识点对于理解和使用Java语言至关重要。希望这些内容能够帮助读者更好地掌握Java编程的基础知识。
在Java编程语言中,`...理解和恰当使用`super`是掌握Java继承机制的关键,也是编写高效、可扩展代码的基础。在实际编程中,根据需求选择合适的方式使用`super`,可以避免不必要的复杂性,提高代码的清晰度和可读性。
Java关键字和命名规范是Java编程语言中的基础概念,它们...遵循Java命名规范不仅可以使代码易于阅读和理解,而且有助于团队协作和代码维护。在实际开发中,合理地应用这些规范对于编写出高质量的Java程序是非常重要的。