package me.test.jdk.java.util.concurrent.atomic;
import java.util.concurrent.atomic.AtomicBoolean;
/**
* Java中的基本类型int、String和封装类型Integer都是不可修改的,参数传递过程中相当于值传递。
* 而java.util.concurrent.atomic.*则是可修改的,是引用传递。
*/
public class AtomicBooleanTest {
public static void main(String[] args) {
System.out.println("------------------------Boolean");
Boolean b1 = Boolean.TRUE;
System.out.println("old value: " + b1);
changeValue(b1);
System.out.println("new value: " + b1);
System.out.println("------------------------AtomicBoolean");
AtomicBoolean b2 = new AtomicBoolean(true);
System.out.println("old value: " + b2);
changeValue(b2);
System.out.println("new value: " + b2);
}
public static void changeValue(Boolean b) {
System.out.println("param old value: " + b);
b = !b;
System.out.println("param new value: " + b);
}
public static void changeValue(AtomicBoolean b) {
System.out.println("param old value: " + b);
b.set(!b.get());
System.out.println("param new value: " + b);
}
}