主要测试全局变量、局部变量、volatile变量、原子变量的读写效率,源码如下:
public class GloableVarientTest {
private long temp = 0;public void test() {
long loop = Integer.MAX_VALUE; long start = System.currentTimeMillis(); for (long i = 0; i < loop; i++) { temp += i; } long end = System.currentTimeMillis(); System.out.println(end - start); }public void testLocal() {
long loop = Integer.MAX_VALUE; long temp = 0; long start = System.currentTimeMillis(); for (long i = 0; i < loop; i++) { temp += i; } long end = System.currentTimeMillis(); System.out.println(end - start); }private volatile long volatileTemp = 0;
public void testVolatile() {
long loop = Integer.MAX_VALUE; long start = System.currentTimeMillis(); for (long i = 0; i < loop; i++) { volatileTemp += i; } long end = System.currentTimeMillis(); System.out.println(end - start); }public void testAtomic() {
AtomicLong atomicTemp = new AtomicLong(0); long loop = Integer.MAX_VALUE; long start = System.currentTimeMillis(); for (long i = 0; i < loop; i++) { atomicTemp.addAndGet(i); } long end = System.currentTimeMillis(); System.out.println(end - start); }public static void main(String[] args) {
GloableVarientTest gv = new GloableVarientTest(); gv.test(); gv.testLocal(); gv.testVolatile(); gv.testAtomic(); } }读写效率测试结果:局部变量 > 全局变量 >>> volatile变量 ≈ 原子变量