写了3年JAVA了, 今天无意看了看java所有的关键字,居然发现2个从来没用过,也不知道是什么含义?transient   和  volatile哪个高人解释解释~ 菜鸟洗耳尊听

解决方案 »

  1.   

    呵呵
    transient   高精度
    volatile    多线程时可以保证同步
      

  2.   

    transient   序列化时忽略
    volatile    强制同步
      

  3.   

    不过我只用过volatile,第一个写这两年也没有用过.
      

  4.   

    错了 strictfp才是高精度
    transient 修饰字段用, 序更化时忽略此字段
      

  5.   

    transient,用来表示一个域不是该对象序列化的一部分。当一个对象被序列化的时候,
    transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。
    例如ArrayList 序列化之后值会丢失,而size不变多线程环境下volatile关键字的使用变得非常重要。在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。要解决这个问题,就该把该变量声明为volatile(不稳定的)即可,这就指示JVM,这个变量是不稳定的,每次使用它都到主存中进行读取。一般说来,多任务环境下各任务间共享的标志都应该加volatile修饰。
      

  6.   

    volatile有点类似于C++中的auto,将值放在cpu寄存器中
      

  7.   

    transient   序列化时忽略
    volatile    强制同步
    这两个都用的少啊!用到的时候在去研究啊!
      

  8.   

    倒这两个用的根本不少哦比如我们做WS;需要在网络上传递的东西,常用transient;
    有人说常用EJB远程调用,为什么不用呢? 焦点就是:一些可以通过已经有的内容恢复的内容,可以用这个关键字修饰
      

  9.   

    在线程中常用volatile ;不过现在更喜欢用ThreadLocal
      

  10.   

    transient 这个我知道用来修辞对象属性的.序列化对象的时候,忽略用它修辞的属性.
      

  11.   

    transient 当被序列化的对象中一些属性具有不可重现的特点的时候,比如说是临时分配的ip地址等等,需要加上此关键字
      

  12.   

    volatile可以用ThreadLocal代替,线程变量副本,每一个线程拥有该变量的一个副本,互不干扰