{"id":41,"date":"2009-05-15T14:15:02","date_gmt":"2009-05-15T12:15:02","guid":{"rendered":"http:\/\/wenzlaff.de\/cgi-bin\/weblog_basic\/index.php?p=41"},"modified":"2021-11-22T17:17:05","modified_gmt":"2021-11-22T16:17:05","slug":"integer-caching","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=41","title":{"rendered":"Integer Caching"},"content":{"rendered":"<p>Schau Dir mal diesen Code an. Was erwartest Du bei dem 3. Vergleich?<\/p>\n<p><code><br \/>\npublic class Test {<\/p>\n<p>\tpublic static void main(String[] args) {<\/p>\n<p>\t\tInteger wertGleich = <strong>100<\/strong>;<br \/>\n\t\tInteger wertAuchGleich = <strong>100<\/strong>;<\/p>\n<p>\t\t\/\/ Referenzvergleich: Test 1<br \/>\n\t\tSystem.out.println(wertGleich == wertAuchGleich); \/\/ ergibt <strong>true<\/strong><\/p>\n<p>\t\t\/\/ gleicher Test nur mit anderen Wert<br \/>\n\t\tInteger wertGleichZwei = <strong>122<\/strong>;<br \/>\n\t\tInteger wertAuchGleichZwei = <strong>122<\/strong>;<\/p>\n<p>\t\t\/\/ Referenzvergleich: Test 2 auch<br \/>\n\t\tSystem.out.println(wertGleichZwei == wertAuchGleichZwei); \/\/ ergibt <strong>true<\/strong><\/p>\n<p>\t\t\/\/ Dreimal ist Bremer Recht: Test 3: Gleicher Test nur mit anderen Wert<br \/>\n\t\tInteger wertUngleich = <strong>150<\/strong>;<br \/>\n\t\tInteger wertAuchUngleich = <strong>150<\/strong>;<\/p>\n<p>\t\t\/\/ Was erwartest Du? <!--more--><\/p>\n<p>\t\t\/\/ Referenzvergleich test 3<br \/>\n\t\tSystem.out.println(wertUngleich == wertAuchUngleich); \/\/ ergibt false !!!<br \/>\n\t}<\/p>\n<p>}<\/code><\/p>\n<p>Warum ist das so? <\/p>\n<p>In der Annahme, dass sich die Verwendung von Integer Objekten im Bereich von <strong>-127 bis +128<\/strong> h\u00e4uft, <strong>cacht <\/strong>Java diese Objekt indem es diese Objekte bereits zum <strong>Ladezeitpunkt <\/strong>instanziiert und f\u00fcr den weiteren Gebrauch vorh\u00e4lt. Wird ein Boxing f\u00fcr einen <code>int <\/code>in dem genannten Wertebereich wie oben angef\u00fchrt durchgef\u00fchrt, erh\u00e4lt man immer die <strong>gleiche <\/strong>Referenz auf ein Integer-Objekt.<\/p>\n<p>Gleiche Werte im Bereich von -127 bis +128 liefern also auch die gleiche Referenz und somit wird auch die Wertgleichheit mit <code>==<\/code> bei den obigen beiden Testf\u00e4llen ermittelt. <\/p>\n<p>Der 3. Testfall liegt ausserhalb des Integer-Caching-Bereiches und liefert deshalb <strong>false<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Schau Dir mal diesen Code an. Was erwartest Du bei dem 3. Vergleich? public class Test { public static void main(String[] args) { Integer wertGleich = 100; Integer wertAuchGleich = 100; \/\/ Referenzvergleich: Test 1 System.out.println(wertGleich == wertAuchGleich); \/\/ ergibt true \/\/ gleicher Test nur mit anderen Wert Integer wertGleichZwei = 122; Integer wertAuchGleichZwei = &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=41\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eInteger Caching\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[5],"tags":[23,46,47],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-java","tag-boxing","tag-integer","tag-integer-caching"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=41"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/41\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}