В простом случае можно предположить, что несколько экземпляров Student
будут использовать одно и то же статическое поле nextID
.Однако следует подумать не только о простом случае (или документе, которого у вас нет).В этом случае все в порядке, если только поля экземпляра id
, полученные из счетчика nextID
, не распространятся в более крупное приложение, где идентификаторы должны быть уникальными.В этом случае вам нужен более надежный генератор идентификаторов (может быть, вам нужен UUID ; может быть, вам нужен первичный ключ в базе данных; может быть, что-то еще).
Спросите себя внимательно, чтонеобходимая область уникальных идентификаторов.Затем найдите решение, которое решает эту проблему, и задокументируйте его в классе.
В общем , статические поля внутри класса с тем же именем, но загруженные различными загрузчиками классов (в том же или вразные JVM) могут быть разными экземплярами, что люди чаще всего замечают при попытке реализовать шаблон Singleton .Таким образом, область действия вашей статической переменной зависит (в сложных случаях) от соответствующих загрузчиков классов.Еще несколько (недавних) подробностей о пространствах имен Java, определенных classloader, здесь и здесь .
Относится к SO: Разница между Thread.getContextClassLoader()
....