{"id":1677,"date":"2013-01-30T13:23:30","date_gmt":"2013-01-30T11:23:30","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=1677"},"modified":"2013-01-30T13:23:30","modified_gmt":"2013-01-30T11:23:30","slug":"die-default-falle","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/01\/die-default-falle\/","title":{"rendered":"Die Default-Falle"},"content":{"rendered":"<p>Insbesondere bei Kodierungen und zeitgebundenen Eigenschaften m\u00fcssen sich Entwickler zu jeder Zeit bewusst sein, welche Einstellung gerade verwendet wird. Neulinge greifen oft auf Default-Einstellungen zur\u00fcck und String-Parsing mit Scanner und Ausgaben mit Formatter funktionieren in der Entwicklung, doch sp\u00e4testens wenn die Software halb um den Globus wandert, l\u00e4uft nichts mehr, weil die Default-Werte pl\u00f6tzlich anders sind.<\/p>\n<p>Wenn Konstruktoren oder Methoden es nicht explizit verlangen, greift das JDK auf Standardwerte unter anderen f\u00fcr<\/p>\n<p>\u00b7 Zeilenendezeichen<\/p>\n<p>\u00b7 Zeichenkodierung<\/p>\n<p>\u00b7 Sprache (Locale)<\/p>\n<p>\u00b7 Zeitzone (TimeZone)<\/p>\n<p>zur\u00fcck.<\/p>\n<p>Ein Beispiel: Der Konstruktor Scanner(File) \u00f6ffnet eine Datei zum Lesen und konvertiert die Bytes in Unicodes mit einem Konverter, den die Default-Zeichenkodierung bestimmt. Wird aus dem Scanner eine Zahl gelesen, etwa mit nextDouble(), greift die voreingestellte Default-Locale, die dem Scanner sagt, ob Dezimalzahlen mit \u201e,\u201c oder \u201e.\u201c interpretiert werden muss. Verarbeitet ein Java-Programm die gleiche Textdatei einmal in den USA und Deutschland, ist das Ergebnis unterschiedlich und in der Regel sollte das nicht so sein.<\/p>\n<p>Default-Werte sind eine gute Sache, allerdings sollten Entwickler sich bewusst sein, an welchen Stellen das JDK auf sie zur\u00fcckgreift, um keine \u00dcberraschungen zu erleben. Es lohnt sich, immer konkrete Belegungen anzugeben, auch wenn als Argument zum Beispiel Locale.getDefault() steht. Das dokumentiert das gewollte Nutzen der Default-Werte.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Insbesondere bei Kodierungen und zeitgebundenen Eigenschaften m\u00fcssen sich Entwickler zu jeder Zeit bewusst sein, welche Einstellung gerade verwendet wird. Neulinge greifen oft auf Default-Einstellungen zur\u00fcck und String-Parsing mit Scanner und Ausgaben mit Formatter funktionieren in der Entwicklung, doch sp\u00e4testens wenn die Software halb um den Globus wandert, l\u00e4uft nichts mehr, weil die Default-Werte pl\u00f6tzlich anders [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11],"tags":[],"class_list":["post-1677","post","type-post","status-publish","format-standard","hentry","category-insel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=1677"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1677\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=1677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=1677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=1677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}