Нет, они не считаются изменчивыми. Только переменная test
является изменчивой. После того, как значение test
было получено (через getInstance
), его волатильность не имеет отношения к остальному поведению клиента.
Лично я бы подумал, если честно, использовать AtomicInteger
и AtomicReference
вместо volatile
. Я не знаю ни о ком другом, но я нахожу изменчивое поведение трудно надежным.
Обратите внимание, что вы, вероятно, не хотите, чтобы ваши test_int
и test_string
переменные были статическими ...