{"id":2400,"date":"2013-09-28T13:27:35","date_gmt":"2013-09-28T11:27:35","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2400"},"modified":"2013-10-17T18:55:42","modified_gmt":"2013-10-17T16:55:42","slug":"fragen-zur-java-zertifizierung-operatoren-und-zuweisungen","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/09\/fragen-zur-java-zertifizierung-operatoren-und-zuweisungen\/","title":{"rendered":"Fragen zur Java-Zertifizierung, Operatoren und Zuweisungen"},"content":{"rendered":"<h3>Frage<\/h3>\n<p>Was ist die Ausgabe, wenn folgende Anweisungen ausgef\u00fchrt werden?<\/p>\n<pre>Boolean b1 = new Boolean( true );\r\nBoolean b2 = new Boolean( true );\r\nObject obj1 = (Object)b1;\r\nObject obj2 = (Object)b2;\r\n\r\nif ( obj1 == obj2 )\r\n  if ( obj1.equals(obj2) )\u00a0\u00a0\u00a0\u00a0 System.out.println( \"a\" );\r\n  else\r\n    System.out.println( \"b\" );\r\nelse\r\n  if ( obj1.equals(obj2) )\u00a0\u00a0\u00a0\u00a0 System.out.println( \"c\" );\r\n  else\u00a0\u00a0\u00a0\u00a0 System.out.println( \"d\" );<\/pre>\n<ol>\n<li>a<\/li>\n<li>b<\/li>\n<li>c<\/li>\n<li>d<\/li>\n<\/ol>\n<p>Die Ausgabe des Programms ist &#8222;c&#8220;, daher ist Antwort C korrekt. Da die Objektreferenz obj1 und obj2 nicht gleich sind, da sie auf verschiedene Boolean Objekte zeigen, kann die Ausgabe nicht &#8222;a&#8220; oder &#8222;b&#8220; sein. Da jedoch die equals() Methode den Wert (true) vergleicht, und beide Objekte den gleichen Wert haben, ist die Ausgabe &#8222;c&#8220;.<\/p>\n<h3>Frage<\/h3>\n<p>Analysiere die beiden Quellcodezeilen:<\/p>\n<pre>float f = 3.2;\r\nint i = f;<\/pre>\n<ol>\n<li>Dieses Programmst\u00fcck wird nicht kompiliert<\/li>\n<li>Dieses Programmst\u00fcck l\u00e4sst sich kompiliert und i erh\u00e4lt der Wert 3<\/li>\n<li>Die zweite Zeile w\u00fcrde sich kompilieren lassen, wenn dort st\u00e4nde:\n<p>int i = (byte) f;<\/li>\n<li>Die erste Zeile lie\u00dfe sich kompilieren, wenn wir schreiben w\u00fcrden:\n<p>float f = 3.2f;<\/li>\n<\/ol>\n<p>Das Programm liefert beim Kompilieren eine Fehlermeldung, die besagt, dass der Datentyp float nicht mit double kompatibel ist. Der Datentyp double umfasst einen gr\u00f6\u00dferen Zahlenbereich und 3.2 ist als Literal automatisch ein double. Also ist A korrekt und B falsch. Der Fehler ist in der ersten Zeile lie\u00dfe sich beheben, wenn man hinter dem 3.2 ein f h\u00e4ngt, wie es L\u00f6sung D vorschl\u00e4gt. Somit ist D korrekt. Unabh\u00e4ngig von der erste Zeile ist auch mit der Typumwandlung auch die zweite Zeile richtig.<\/p>\n<h3>Frage<\/h3>\n<p>Welche der folgenden Anweisungen sind korrekt?<\/p>\n<ol>\n<li>128 &gt;&gt; 1 ergibt 64<\/li>\n<li>128 &gt;&gt;&gt; 1 ergibt 64<\/li>\n<li>128 &gt;&gt; 1 ergibt \u201364<\/li>\n<li>128 &gt;&gt;&gt; 1 ergibt \u201364<\/li>\n<\/ol>\n<p>Antworten A und B sind korrekt.<\/p>\n<h3>Frage<\/h3>\n<p>Welche der folgenden Anweisungen ergeben den R\u00fcckgabewert true?<\/p>\n<ol>\n<li>&#8222;ulli&#8220; == &#8222;ulli&#8220;<\/li>\n<li>&#8222;ulli&#8220;.equals(&#8222;ulli&#8220;)<\/li>\n<li>&#8222;ulli&#8220; = &#8222;ulli&#8220;<\/li>\n<li>&#8222;ulli&#8220;.equals(new Button(&#8222;ulli&#8220;))<\/li>\n<\/ol>\n<p>Da sich die virtuelle Maschine gleiche Strings in einem Konstanten-Pool h\u00e4lt, ist Antwort A korrekt. Bei B wird ein Zeichen-zu-Zeichen Vergleich unternommen. Da beide Strings identisch sind, ist auch hier das Ergebnis true, also ist auch Antwort B wahr. Man sollte sich nur bewusst sein, dass bei A kein inhaltlicher Vergleich stattfindet. Antwort C ergibt einen Compilerfehler, da ein einfaches Gleichheitszeichen eine Zuweisung definiert. Auf der linken Seite darf aber kein Literal stehen. Somit kann C nicht richtig sein. Die equals Methode, die auf der String Klasse definiert ist, \u00fcberschreibt die equals() Methode der Klasse Object. Sie erlaubt aber als Parameter nur String Objekte. Es ist nicht so, dass bei nicht-Sting Objekten die toString() Methoden aufgerufen wird. Der R\u00fcckgabewert ist false. Also ist auch D falsch.<\/p>\n<h3>Frage<\/h3>\n<p>Welche der Anweisungen f\u00fchrt nicht zu einem Kompilierfehler?<\/p>\n<ol>\n<li>&#8222;ulli&#8220; + &#8220; plus &#8220; + &#8220; plus&#8220;<\/li>\n<li>&#8222;ulli&#8220; + 29<\/li>\n<li>345 + 45<\/li>\n<li>5 + 5.5<\/li>\n<\/ol>\n<p>Keine der Anweisungen f\u00fchren zu einem Laufzeitfehler. Also sind Antwort A, B, C und D korrekt.<\/p>\n<h3>Frage<\/h3>\n<p>Welche der folgenden logischen Operatoren nennen sich &#8222;short circuit&#8220;?<\/p>\n<ol>\n<li>&amp;<\/li>\n<li>||<\/li>\n<li>&amp;&amp;<\/li>\n<li>|<\/li>\n<\/ol>\n<p>B und C sind die kurzen Operatoren, die dann gelten, wenn der entsprechende Teil gilt.<\/p>\n<h3>Frage<\/h3>\n<p>Welchen Wert enth\u00e4lt die Variable temp nach der Ausf\u00fchrung der beiden Zeilen?<\/p>\n<pre>long temp = (int) 3.9;\r\ntemp %= 2;<\/pre>\n<ol>\n<li>0<\/li>\n<li>1<\/li>\n<li>2<\/li>\n<li>3<\/li>\n<li>4<\/li>\n<\/ol>\n<p>Das Ergebnis ist 1, also die Antwort B wahr. Die Typumwandlung schneidet den Nachkommateil von 3.9 ab und das Ergebnis 3 Modulo 2 ist 1.<\/p>\n<h3>Frage<\/h3>\n<p>Welche Bildschirmausgabe erzeugt die folgende Anweisung?<\/p>\n<p>System.out.println( 4 | 7 );<\/p>\n<ol>\n<li>0<\/li>\n<li>4<\/li>\n<li>5<\/li>\n<li>6<\/li>\n<li>7<\/li>\n<\/ol>\n<p>Die bin\u00e4re Repr\u00e4sentation der Zahl 4 ist 100 und von 7 ist 111. Beide mit Oder verkn\u00fcpft gibt 111 und somit wiederum 7. Also ist Antwort E korrekt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Frage Was ist die Ausgabe, wenn folgende Anweisungen ausgef\u00fchrt werden? Boolean b1 = new Boolean( true ); Boolean b2 = new Boolean( true ); Object obj1 = (Object)b1; Object obj2 = (Object)b2; if ( obj1 == obj2 ) if ( obj1.equals(obj2) )\u00a0\u00a0\u00a0\u00a0 System.out.println( &#8222;a&#8220; ); else System.out.println( &#8222;b&#8220; ); else if ( obj1.equals(obj2) )\u00a0\u00a0\u00a0\u00a0 System.out.println( [&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":[1],"tags":[],"class_list":["post-2400","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2400","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=2400"}],"version-history":[{"count":2,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2400\/revisions"}],"predecessor-version":[{"id":2477,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2400\/revisions\/2477"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}