in the code we have: public static volatile List<Person> allPeople = new ArrayList<>(); and we have to add synchronized(allPeople) to the each case: case "-c": synchronized (allPeople) { for (int i = 1; i < args.length; i = i + 3) { create(args[i], args[i + 1], args[i + 2]); } } break; questions is what does the synchronized add to volatile?