Friday, May 8, 2026
HomeLanguagesJavaAtomicReference getAndSet() method in Java with Examples

AtomicReference getAndSet() method in Java with Examples

The getAndSet() method of a AtomicReference class is used to atomically sets the value of AtomicReference object to newValue which is passed as parameter and returns the old value of the AtomicReference object, with memory effects as specified by VarHandle.getAndSet(java.lang.Object…).VarHandle.getAndSet(java.lang.Object…) specified that variable is handle as memory semantics of setting as if the variable was declared volatile.
 

Syntax:  

public final V getAndSet?(V newValue)

Parameters: This method accepts newValue which is the new value.
Return value: This method returns the old value of AtomicReference.
Below programs illustrate the getAndSet() method: 
Program 1:  

Java




// Java program to demonstrate
// AtomicReference.getAndSet() method
 
import java.util.concurrent.atomic.AtomicReference;
 
public class GFG {
    public static void main(String[] args)
    {
 
        // create an atomic reference object.
        AtomicReference<Double> ref
            = new AtomicReference<Double>();
 
        // set some value
        ref.set(1234.00);
 
        // get and replace value
        double oldValue
            = ref.getAndSet((double)3213);
 
        // print
        System.out.println("OLD Value = "
                           + oldValue);
        System.out.println("NEW Value = "
                           + ref.get());
    }
}


Output: 

OLD Value = 1234.0
NEW Value = 3213.0

 

Program 2: 

Java




// Java program to demonstrate
// AtomicReference.getAndSet() method
 
import java.util.concurrent.atomic.AtomicReference;
 
public class GFG {
    public static void main(String[] args)
    {
 
        // create an atomic reference object.
        AtomicReference<String> ref
            = new AtomicReference<String>();
 
        // set some value
        ref.set("AtomicReference old value");
 
        // get and replace value
        String oldValue = ref.getAndSet(
            "AtomicReference new value");
 
        // print
        System.out.println("OLD Value = "
                           + oldValue);
        System.out.println("NEW Value = "
                           + ref.get());
    }
}


Output: 

OLD Value = AtomicReference old value
NEW Value = AtomicReference new value

 

References: https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/atomic/AtomicReference.html#getAndSet(V)

RELATED ARTICLES

2 COMMENTS

Most Popular

Dominic
32514 POSTS0 COMMENTS
Milvus
131 POSTS0 COMMENTS
Nango Kala
6892 POSTS0 COMMENTS
Nicole Veronica
12012 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12107 POSTS0 COMMENTS
Shaida Kate Naidoo
7016 POSTS0 COMMENTS
Ted Musemwa
7262 POSTS0 COMMENTS
Thapelo Manthata
6975 POSTS0 COMMENTS
Umr Jansen
6962 POSTS0 COMMENTS