Dans le cas simple, vous pouvez supposer que plusieurs instances de Student
partagent le même champ statique nextID
. Cependant, il faut penser au-delà du cas simple (ou du document que vous n'avez pas). Dans ce cas, c'est bon à moins que les champs id
de l'instance dérivés du compteur nextID
se propagent dans une application plus grande où les ID sont censés être uniques. Dans ce cas, vous voulez un générateur d'ID plus robuste (peut-être que vous voulez un UUID, peut-être que vous voulez une clé primaire dans une base de données, peut-être quelque chose d'autre).
Demandez-vous soigneusement quelle est la portée requise des ID uniques. Recherchez ensuite une solution qui résout ce problème et documentez-le dans la classe.
En général, les champs statiques dans le même nom de classe, mais chargée par différents classloaders (dans le même ou dans différentes JVMs) peut être different instances, something people most often notice when trying to implement the Singleton pattern. Ainsi, la portée de votre variable statique dépend (dans des cas compliqués) sur les chargeurs de classe pertinents. Quelques plus (récent) détail sur Java namespaces defined by classloader is here et here.
Relatif à SO: Difference between Thread.getContextClassLoader()
....
Clarification: * chargé par différents classloaders * - si les sessions sont réparties entre différentes JVM, il est presque certain que les données statiques ne seront * pas * partagées comme prévu (je ne serais pas surpris de trouver un cache distribué spécial/classloader contre-exemple ...). –