Java Integer Pool. Warum?
Ich habe überall gelesen, dass beim Definieren einer Ganzzahl zwischen -128 und 127 in Java ein bereits erstelltes Objekt zurückgegeben wird, anstatt ein neues Objekt zu erstellen.
Ich sehe keinen anderen Grund, dies zu tun, als Neulingen zu erlauben, Integer-Objekte mit zu vergleichen==
um zu sehen, ob sie die gleiche Zahl sind, aber ich denke, das ist schlecht, weil sie sicher denken, dass sie jede ganze Zahl mit vergleichen können==
und lehrt auch eine schlechte Praxis in jeder Programmiersprache: Vergleichen des Inhalts von zwei "verschiedenen" Objekten mit==
.
Gibt es einen anderen Grund dafür? Oder ist es nur eine schlechte Entscheidung, die Sprache (aus meiner Sicht) wie ein optionales Semikolon in JavaScript zu gestalten?
EDIT: Ich sehe hier, dass sie das Verhalten erklären:Warum ändert sich das Verhalten des Integer-Konstantenpools bei 127?
Ich frage, warum sie es entworfen haben, um dieses Verhalten zu haben, und nicht, warum dieses Verhalten geschieht.