18may20JAVA

各位老铁们,大家好,今天由我来为大家分享18may20JAVA,以及static和Volatile的区别的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

  1. Vert.x未来会取代tomcat和现在流行的spring全家桶吗
  2. static和Volatile的区别

Vert.x未来会取代tomcat和现在流行的spring全家桶吗

https://www.mayi888.com/archives/69889

将来还是微服务为主,编译成原生代码,减少资源占用。

static和Volatile的区别

变量放在主存区上,使用该变量的每个线程,都将从主存区拷贝一份到自己的工作区上进行操作。

volatile,声明这个字段易变(可能被多个线程使用),Java内存模型负责各个线程的工作区与主存区的该字段的值保持同步,即一致性。

static,声明这个字段是静态的(可能被多个实例共享),在主存区上该类的所有实例的该字段为同一个变量,即唯一性。

volatile,声明变量值的一致性;static,声明变量的唯一性。

此外,volatile同步机制不同于synchronized,前者是内存同步,后者不仅包含内存同步(一致性),且保证线程互斥(互斥性)。

static只是声明变量在主存上的唯一性,不能保证工作区与主存区变量值的一致性;除非变量的值是不可变的,即再加上final的修饰符,否则static声明的变量,不是线程安全的。

下面摘自Java语言规范(JavaLanguageSpecification)的官方解释:

1)Ifafieldisdeclaredstatic,thereexistsexactlyoneincarnationofthefield,nomatterhowmanyinstances(possiblyzero)oftheclassmayeventuallybecreated.

2)Afieldmaybedeclaredvolatile,inwhichcasetheJavaMemoryModelensuresthatallthreadsseeaconsistentvalueforthevariable。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!