`
asir007
  • 浏览: 25184 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java关键字

    博客分类:
  • Java
阅读更多
Java关键字(keywords)

      abstract    default    if            private      this

      boolean     do         implements    protected    throw

      break       double     import        public       throws

      byte        else       instanceof    return       transient

      case        extends    int           short        try

      catch       final      interface     static       void

      char        finally    long          strictfp     volatile

      class       float      native        super        while

      const       for        new           switch

      continue    goto       package       synchronized

      strictfp
      修饰类和方法,意思是FP-strict,精确浮点,符合IEEE-754规范的。当一个class或interface用strictfp声明,内部所有的float和double表达式都会成为strictfp的。Interface method不能被声明为strictfp的,class的可以。

      transient

      变量修饰符。标记为transient的变量,在对象存储时,这些变量状态不会被持久化。当对象序列化的保存在存储器上时,不希望有些字段数据被保存,为了保证安全性,可以把这些字段声明为transient。

      volatile

      volatile修饰变量。在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

      看看Java Language Specification中的例子。

      条件:一个线程不停的调用方法one(),一个线程不停的调用方法two()。我测试过多次,这种情况好像一直没有出现。
    * class Test {   
    *      static int i = 0, j = 0;   
    *      static void one() { i++; j++; }   
    *      static void two() {   
    *          System.out.println("i=" + i + " j=" + j);   
    *      }   
    * }  

结果偶尔会出现j大于i的情况,因为方法没有同步,所以会出现i和j可能不是一次更新。一种防止这种情况发生的办法就是声明两个方法为synchronized 的。
# class Test {   
#      static int i = 0, j = 0;   
#      static synchronized void one() { i++; j++; }   
#      static synchronized void two() {   
#          System.out.println("i=" + i + " j=" + j);   
#      }   
# }

这样可以防止两个方法同时被执行,还可以保证j和i被同时更新,这样一来i和j的值一直是一样的。
另外一种途径就是把i和j声明为volatile。
# class Test {   
#      static volatile int i = 0, j = 0;   
#      static void one() { i++; j++; }   
#      static void two() {   
#          System.out.println("i=" + i + " j=" + j);   
#      }   
# }

源:http://www.iteye.com/topic/82640

 

分享到:
评论

相关推荐

    java关键字总结文档

    ### Java关键字总结 Java是一种广泛使用的面向对象编程语言,它具备简单性、可移植性、高性能等特点。在Java中,关键字具有特殊的语法含义,不能用作标识符(例如变量名或方法名)。以下是对给定文件中提到的Java...

    Java关键字、标识符、注释、转义字符.docx

    Java 关键字、标识符、注释、转义字符详解 Java 语言中有四个重要的概念:关键字、标识符、注释和转义字符。这些概念是 Java 语言的基础,理解这些概念对于编写 Java 代码非常重要。 一、Java 关键字 Java 关键字...

    Java关键字分类解释

    ### Java关键字分类解释 #### 一、类与接口定义关键字 - **class**: 在Java中,`class`关键字用于声明一个类。类是面向对象编程的基本单元,它定义了一组属性(成员变量)和方法(成员函数),这些共同构成了一个...

    Java关键字大全 Java关键字

    Java关键字大全 Java关键字大全是Java编程语言中最基本和最重要的组成部分。这些关键字是Java语言的基础构建块,用于定义类、方法、变量、控制流、异常处理等。了解和掌握Java关键字是每一个Java开发者必备的技能。...

    Linux中Java变量与java关键字。MyEclipse快捷键大全。Java方法

    首先,让我们来谈谈“Linux中Java变量与java关键字”。在Java编程中,变量是存储数据的容器,它们可以是基本类型(如int、float、boolean等)或引用类型(如对象)。在Linux环境下,Java程序的运行与Windows或Mac...

    Java关键字详细解

    这篇文档《Java关键字详细解》将深入探讨Java中的关键字及其用途。 首先,我们来看看Java中的主要关键字。`public`、`private`、`protected`是访问修饰符,用于控制类、方法和变量的访问权限。`public`可以被任何...

    Java关键字的描述

    ### Java关键字详解:掌握编程语言的核心 #### 一、Abstract:抽象类与抽象方法的关键 在Java中,`abstract`关键字被用于定义抽象类和抽象方法。抽象类是一种特殊的类,它不能被实例化,即不能创建其对象,但可以...

    java关键字、保留字

    ### Java关键字详解 #### 概述 Java是一种广泛使用的面向对象编程语言,它拥有丰富的关键字集,用于控制程序的行为和结构。Java关键字是由Java语言预定义的标识符,具有特殊的含义,不能用作变量名、方法名或类名等...

    JAVA关键字

    Java关键字是编程的基础,它们是Java语言预定义的、具有特殊含义的标识符,不能作为变量名、方法名或类名。以下是对50个Java关键字的详细解释: 1. **abstract**:用于声明抽象类或抽象方法,不包含具体实现。 2. ...

    JAVA关键字列表

    JAVA关键字列表 Java是一种面向对象的编程语言,具有多种关键字,用于控制程序的执行、定义变量、类和方法等。本文档系统列举了Java的关键字及其用法分类,总共分为以下几个类别:访问控制、类、变量修饰符、流程...

    java关键字

    ### Java关键字详解 #### 前言 Java作为一种广泛使用的编程语言,在软件开发领域占据了重要的地位。Java的关键字,即保留字,是Java语言中具有特殊意义的标识符,它们预定义并保留用于语言本身的语法结构。理解这些...

    Java关键字大全

    Java关键字大全 Java语言中有多种关键字,每个关键字都有其特定的用途和作用。下面是Java关键字大全的详细解释: 1. abstract关键字 abstract关键字可以修改类或方法。abstract类可以扩展(增加子类),但不能...

    java关键字详情.doc

    该文档主要介绍了java关键字的用法及说明

    java 关键字解析

    ### Java关键字解析 Java是一种广泛使用的面向对象编程语言,它为开发者提供了丰富的特性和功能,以简化复杂的软件开发过程。Java的关键字是预定义的保留字,在Java编程中具有特殊的含义和用途。本文将深入探讨Java...

    java关键字总结

    通过这份总结,我们可以看到Java关键字在定义行为和数据时起到的作用。理解这些关键字的含义和使用方式是掌握Java语言基础的关键。这些概念包括区分对象内部变量和方法、处理继承关系中的方法覆盖、定义类级别的属性...

    Java关键字列表

    Java关键字列表 上面列出了Java所有的关键字

    JAVA关键字表格

    整理JAVA关键字信息

    Java关键字及其作用

    Java 关键字是编程语言中预定义的具有特殊含义的标识符,它们是构建和管理程序结构的关键元素。本文将详细解析 Java 中的访问控制关键字,以及类、方法和变量修饰符。 首先,我们来看看访问控制关键字: 1. **...

Global site tag (gtag.js) - Google Analytics