{"id":2966,"date":"2014-03-29T18:25:42","date_gmt":"2014-03-29T17:25:42","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=2966"},"modified":"2021-11-22T17:15:46","modified_gmt":"2021-11-22T16:15:46","slug":"java-raetsel-des-monats","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=2966","title":{"rendered":"Java R\u00e4tsel des Monats"},"content":{"rendered":"<p>Wenn wir diese Java Klasse compilieren und ausf\u00fchren:<\/p>\n<pre>\r\n\r\npublic class RaetselDesMonats {\r\n\r\n\tprivate static final String HALLO_WELT = \"Hallo Welt!\";\r\n\r\n\tpublic static void main(String[] args) throws Exception {\r\n\r\n\t\twieSiehtDieMethodeAus();\r\n\r\n\t\tString welt = \"Hallo Welt!\";\r\n\r\n\t\tSystem.out.println(welt);\r\n\t\tSystem.out.println(\"Hallo Welt!\");\r\n \t\tSystem.out.println(HALLO_WELT);\r\n\t}\r\n\r\n\tprivate static void wieSiehtDieMethodeAus() throws Exception {\r\n\t\t\/\/ nur hier Anpassungen m\u00f6glich\r\n\t}\r\n}<\/pre>\n<p>Welche L\u00f6sung bzw. Aussage ist richtig?<\/p>\n<p>1. Es wird immer folgende Ausgabe gemacht, egal was in der wieSiehtDieMethodeAus()<br \/>\nerg\u00e4nzt wird:<br \/>\n<code>Hallo Welt!<br \/>\nHallo Welt!<br \/>\nHallo Welt!<\/code><\/p>\n<p>2. Es wird &#8222;<code>nichts<\/code>&#8220; ausgegeben.<\/p>\n<p>3. Es wird <code>Hallo Welt!<\/code> ausgegeben<\/p>\n<p>4. Es kann durch Anpassung, nur in der Methode wieSiehtDieMethodeAus() folgende Ausgabe erzeugt werden?<br \/>\n<code>Was in Java alles geht!<br \/>\nWas in Java alles geht!<br \/>\nWas in Java alles geht!<\/code><\/p>\n<p>Dein Vorschlag in Form von 1,2,3 oder 4 bitte posten. Nur Mut!<br \/>\nHier nun die L\u00f6sung:<br \/>\n<!--more--><\/p>\n<pre>\r\n\tprivate static void wieSiehtDieMethodeAus() throws Exception {\r\n\t\tjava.lang.reflect.Field f = String.class.getDeclaredField(\"value\");\r\n\t\tf.setAccessible(true);\r\n\t\tf.set(\"Hallo Welt!\", \"Was in Java alles geht!\".toCharArray());\r\n\t}\r\n<\/pre>\n<p>In Java werden gleiche Stings nur <strong>einmal<\/strong> intern gespeichert. Die String Klasse speichert in dem Feld <strong>value<\/strong>. Auf das kann per reflection zugegriffen werden, wenn die Zugriffsbeschr\u00e4nkung mit setAccessible aufgehoben wird. So wird jedes &#8222;Hallo Welt!&#8220; durch &#8222;Was in Java alles geht!&#8220; ersetzt.<br \/>\nAuf einen Import, kann man so auch verzichten.<\/p>\n<p>Auch in den Kommentaren sind gute Ideen, vielen Dank.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn wir diese Java Klasse compilieren und ausf\u00fchren: public class RaetselDesMonats { private static final String HALLO_WELT = &#8222;Hallo Welt!&#8220;; public static void main(String[] args) throws Exception { wieSiehtDieMethodeAus(); String welt = &#8222;Hallo Welt!&#8220;; System.out.println(welt); System.out.println(&#8222;Hallo Welt!&#8220;); System.out.println(HALLO_WELT); } private static void wieSiehtDieMethodeAus() throws Exception { \/\/ nur hier Anpassungen m\u00f6glich } } Welche L\u00f6sung &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=2966\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eJava R\u00e4tsel des Monats\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,210,1361,79],"tags":[2178,1387,1382,1383],"class_list":["post-2966","post","type-post","status-publish","format-standard","hentry","category-java","category-java-7","category-java-8","category-programmierung","tag-java","tag-loesung","tag-raetsel","tag-raetsel-des-monats"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/2966","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=2966"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/2966\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2966"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}