Может в следующем концептуальном примере Java:
public class X implements Runnable {
    public volatile Object x = new Object();
    @Runnable
    public void run() {
        for (;;) {
            Thread.sleep(1000);
            x = new Object();
        }
    }
}
 x когда-либо читается как null из другого потока?
Бонус: мне нужно объявить его изменчивым (мне все равно не нужно это значение, достаточно, чтобы когда-нибудь в будущем это будет новое назначенное значение и никогда не будет равно нулю)