1) Ключевое слово volatile перед объектом (переменной) служит указателем компилятору о том что объект может быть изменен не из текущей программы и компилятору следует это учитывать при оптимизации.
2) При объявлении объекта (переменной) ключевое слово volatile может стоять до типа данных или после.