`
lizhensan
  • 浏览: 377188 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java中的两个关键字 volatile & transient

    博客分类:
  • java
 
阅读更多

volatile:当新建一个线程时,为了提高效率, 
他会将某些数据拷贝一份到自己这里,所以有可能 
你在线程中修改了数据,但是修改的只是你自己的备 
份而已,而不会影响到原始的数据。或者其他的线程修改了数据,
你这边却看不到,这样就可能对你的多线程程序造成影响。

使用volatile的时候,则不会对这个变量进行私有拷贝,这样,你的
多线程程序就不会出错了。但是需要注意的是,做私有拷贝对于提高
程序的效率,非常有益,所以记得只在必须的时候才使用volatile。


transient:表示当前变量在序列化的时候,不要进行序列化,
比如对于密码等敏感信息,或者一些本来序列化就没有意义的东西,
诸如数据库连接,可以使用此此关键字进行修饰。


附注:
1.在c++中的volatile,是禁用寄存器优化,这样的话,变量就是直接
存在存在内存的,就不会存在因为线程A将变量存在寄存器里,然后访问
的都是寄存器的,而线程B对于变量的修改,A就无法感知了,导致多线程
程序的错误。

2.一个小知识,在java中,long和double的赋值不是原子操作,而且他的基本
类型的赋值则都是原子的,但是如果加上volatile的话,则读写是原子的。
对引用(无论32bit或者64bit)的读写总是原子的。

 

http://blog.163.com/javaee_chen/blog/static/17919507720113138059122/

分享到:
评论

相关推荐

    JAVA中的保留关键字

    Java中有53个关键字,包括但不限于: - `abstract`:用于声明抽象类和抽象方法。 - `boolean`:表示布尔类型,只有两个可能的值:true 和 false。 - `break`:用于中断循环或switch语句。 - `byte`:一种基本数据...

    java中“53”个关键字(含2个保留字)

    在Java中,一共有53个关键字,包括两个保留字。下面将详细阐述这些关键字的功能和用途。 1. `abstract` - 用于声明抽象类或抽象方法,表示类不提供具体实现。 2. `assert` - 用于断言某个条件为真,通常用于测试和...

    java保留字、关键字

    在Java编程语言中,保留字(Reserved Words)和关键字(Keywords)是两个非常重要的概念,它们构成了Java语法的基础。保留字是Java语言已经预定义并赋予特定含义的词汇,而关键字则是Java语法结构中不可或缺的部分。...

    Java基础之关键字_Java基础之关键字_源码

    - `boolean`:布尔类型,只有`true`和`false`两个值。 4. 类与对象: - `class`:声明类。 - `interface`:声明接口。 - `abstract`:抽象类或抽象方法的标识。 - `final`:不可改变的标识,用于类、方法或...

    java关键字、标识符、注释

    - `public`, `private`, `protected`, `static`, `final`, `abstract`, `synchronized`, `volatile`, `transient`:这些关键字用于定义访问级别和修饰符。 - `try`, `catch`, `finally`, `throw`, `throws`:这些...

    java关键字

    8. **boolean**: 表示逻辑类型,只有两个可能的值:`true` 和 `false`。 9. **void**: 用于声明方法不返回任何值。 10. **String**: 虽然不是关键字,但经常被视为基本类型的一种,用于表示文本字符串。 #### 流程...

    java关键字、保留字

    - **用途**:布尔基本数据类型,可以存储`true`或`false`两个值。 4. **break** - **用途**:用于提前退出循环或`switch`语句。 5. **byte** - **用途**:8位有符号整数类型,取值范围从-128到127。 6. **...

    java51个关键字详解

    Java编程语言中有51个关键字,它们在程序中扮演着至关重要的角色,用来定义类、接口、变量、方法以及控制程序流程。以下是一些主要的关键字及其解释: 1. `abstract`:抽象关键字,用于声明抽象类和抽象方法。抽象...

    java中的50个关键字.docx

    ### Java中的50个关键字详解 #### 一、引言 Java作为一种广泛使用的编程语言,在其语法体系中定义了一系列关键字,这些关键字具有特定的意义和用途,对于理解和编写Java程序至关重要。本文将详细介绍Java中与数据...

    第02章 Java编程基础 05 关键字与转义字符

    Java编程基础是学习Java开发的重要环节,而关键字和转义字符是其中不可或缺的两个概念。在Java中,关键字是被Java语言预定义并赋予特殊含义的词汇,它们不能作为变量、类名或方法名等标识符使用。转义字符则是用于在...

    Java的关键字与保留字

    Java拥有51个关键字,这些关键字在编程中扮演着核心角色,用于声明类型、控制流程、异常处理等。下面我们将逐一介绍这些关键字: 1. **abstract**:用于定义抽象类和抽象方法,表示该类不能被实例化,或方法没有...

    java关键字大全及解释

    2. `boolean`: 表示逻辑值,只有两个可能的值,`true` 和 `false`。 3. `break`: 用于跳出当前循环或者switch语句,提前结束执行。 4. `byte`: 一种基本数据类型,表示8位的二进制数字,取值范围-128到127。 5. `...

    Java基础标识符关键字数据类型PPT教案学习.pptx

    * boolean 是一个布尔类型,用于表示一个逻辑判定的真假值,在 Java 中只有两个值,即 true 和 false。 在 Java 中,基本数据类型的定义和赋值需要使用特定的语法:<数据类型> <数据名> = <数值>; 例如:int a = ...

    Java关键字的用法

    `boolean`类型用于表示逻辑值,只有两个可能的值:`true` 和 `false`。 **示例:** ```java boolean isPassed = true; ``` #### 4. `break` `break`关键字用于立即退出循环或`switch`语句,转移到紧跟`break`语句...

    Java的关键字与标识符小结

    9. 其他关键字:包括native、strictfp、transient、volatile、assert、goto、const和enum等8个关键字。 标识符是用户在编程时给类、变量、常量、方法(函数)、语句块等起的名字。Java语言中标识符不包括关键字,而...

    JAVA关键字总结(整理后最全最详细)

    - `boolean` 是Java的基本数据类型之一,用于表示逻辑值,只有两个可能的值:`true` 和 `false`。它可以用于定义变量、函数参数或类的成员变量。例如: ```java boolean isDone = false; if (isDone) { // do ...

    Java中的保留字和关键字.doc

    - **boolean**:布尔类型,有两个值true和false。 - **byte**:字节类型,占用1字节。 - **char**:字符类型,占用2字节。 - **double**:双精度浮点类型,占用8字节。 - **float**:单精度浮点类型,占用4字节。 - ...

    java关键字,适合新手的ppt

    `byte`是8位的,`short`是16位的,`int`是32位的,`long`是64位的整数,`float`和`double`分别是32位和64位的浮点数,`char`是16位的Unicode字符,而`boolean`表示逻辑值,只有`true`和`false`两个状态。 在控制流...

Global site tag (gtag.js) - Google Analytics