{"id":2402,"date":"2013-09-28T13:28:51","date_gmt":"2013-09-28T11:28:51","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2402"},"modified":"2013-09-28T13:28:51","modified_gmt":"2013-09-28T11:28:51","slug":"fragen-zur-java-zertifizierung-deklarationen-und-zugriffskontrolle","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/09\/fragen-zur-java-zertifizierung-deklarationen-und-zugriffskontrolle\/","title":{"rendered":"Fragen zur Java-Zertifizierung, Deklarationen und Zugriffskontrolle"},"content":{"rendered":"<h3>Frage<\/h3>\n<p>Analysiere die Quellcodezeile <\/p>\n<p>if ( 5 &amp; 7 &gt; 0 ) System.out.println( &quot;Hullahupp-Reifen&quot; );<\/p>\n<ol>\n<li>Diese Zeile l\u00e4sst sich nicht kompilieren <\/li>\n<li>Diese Zeile l\u00e4sst sich kompilieren, aber nichts erscheint auf der Standardausgabe <\/li>\n<li>Dieser Code l\u00e4sst sich kompilieren und das Wort &quot;Hullahupp-Reifen&quot; erscheint in der Standard-Ausgabe.<\/li>\n<\/ol>\n<p>Innerhalb vom Schleifen und Verzweigungen muss der Typ boolean sein. 5&amp;7 ergeben zwar einen Wert, der verglichen mit 0 wahr oder falsch sein kann, jedoch ist die richtige Antwort A. Das Problem sind die unterschiedlichen Vorrangsregeln f\u00fcr Operationszeichen. Hier bindet 7&gt;0 st\u00e4rker als 5&amp;7. So wird der Versuch unternommen 5 mit einem Wahrheits-Wert Und zu verkn\u00fcpfen. Richtig w\u00e4re (5&amp;7)&gt;0.<\/p>\n<h3>Frage<\/h3>\n<p>Welche der Zeilen erzeugt ein Array mit f\u00fcnf leeren Strings? <\/p>\n<ol>\n<li>String a [] = new String [5]; <\/li>\n<li>for (int i = 0; i &lt; 5; a[i++] = &quot;&quot;) ; <\/li>\n<li>String a [] = {&quot;&quot;, &quot;&quot;, &quot;&quot;, &quot;&quot;, &quot;&quot;}; <\/li>\n<li>String a [5]; <\/li>\n<li>String [5] a; <\/li>\n<li>String [] a = new String [5];     <br \/>for ( int i = 0; i &lt; 5; a[i++] = null ) ;<\/li>\n<\/ol>\n<p>In Antwort A werden keine Strings erzeugt, sondern nur ein Feld mit 5 Referenzen. Somit ist A falsch. In B werden f\u00fcnf leere Stings zugewiesen, ebenso in Antwort C, daher sind beide korrekt. Diese Strings sind nat\u00fcrlich nicht individuell, sondern die alle f\u00fcnf Referenzen werden auf den gleichen Leerstring zeigen. Antwort D und E sind falsche Deklarationen f\u00fcr ein Feld. Antwort F ist falsch, da die Referenz auf Null zeigt, nicht aber auf einen leeren String &quot;&quot;.<\/p>\n<h3>Frage<\/h3>\n<p>Welche Aussage beschreibt am besten die folgende Programmzeile? <\/p>\n<p>String[][] s = new String[10][];<\/p>\n<ol>\n<li>Diese Zeile ist illegal. <\/li>\n<li>Es ist ein zweidimensionales Feld mit 10 Zeilen und 10 Spalten. <\/li>\n<li>Es ist ein Feld von 10 Feldern. <\/li>\n<li>Jedes Element in s ist mit &quot;&quot; initialisiert. <\/li>\n<li>Jedes Element in s ist nicht initialisiert und muss daher vor der Nutzung initialisiert werden.<\/li>\n<\/ol>\n<p>Diese Zeile kann normal kompiliert werden, daher ist A falsch. C ist dagegen richtig, denn die Programmzeile schafft Platz f\u00fcr ein Array mit 10 Eintr\u00e4gen in einer Dimension. Wie gro\u00df die andere Dimension ist, bleibt offen. Daher ist B falsch. Da die andere Dimension in ihrer Gr\u00f6\u00dfe noch nicht definiert ist, ist ein Zugriff auf ein Element noch ung\u00fcltig. Daher kann jedes Element auch noch nicht mit einem Leerstring initialisiert sein. D ist also falsch und E richtig.<\/p>\n<h3>Frage<\/h3>\n<p>Welche Felddeklaration ist korrekt?<\/p>\n<ol>\n<li>String temp[] = new String { &quot;u&quot; &quot;l&quot; &quot;l&quot; &quot;i&quot; }; <\/li>\n<li>String temp[] = { &quot;u &quot; &quot;l&quot; &quot;l&quot; &quot;i&quot; }; <\/li>\n<li>String temp = { &quot;a&quot;, &quot;b&quot;, &quot;c&quot; }; <\/li>\n<li>String temp[] = { &quot;a&quot;, &quot;b&quot;, &quot;c&quot; };<\/li>\n<\/ol>\n<p>Antwort A, B und C erzeugen einen \u00dcbersetzungsfehler und D ist korrekt. Bei A und B fehlen f\u00fcr die Feldelemente das trennende Komma. Dann w\u00e4re B korrekt. Da A der Versuch einer Deklaration eines anonymen Feldes ist, muss noch hinter dem Typ String Klammern stehen. Korrigierte man A in String temp[] = new String[] { &quot;u&quot;, &quot;l&quot;, &quot;l&quot;, &quot;i&quot; } lie\u00dfe es sich kompilieren. Bei C fehlen ebenfalls die Klammern, da die geschweiften Klammern Elemente eines Feldes bezeichnen und nicht zu einem String zusammengesetzt werden k\u00f6nnen.<\/p>\n<h3>Frage<\/h3>\n<p>Was passiert, wenn folgendes Programm kompiliert wird?<\/p>\n<pre>1: public class Clazz {\n2:  public static void main( String args[] ) {\n3:    int feld[] = new int[]{1,2,3};\n4:    System.out.println( feld[1] );\n5:  }\n6:}<\/pre>\n<ol>\n<li>1 <\/li>\n<li>2 <\/li>\n<li>\u00dcbersetzungsfehler, da feld vor der Benutzung nicht definiert wurde. <\/li>\n<li>\u00dcbersetzungsfehler, da die Feldgr\u00f6\u00dfe festgelegt werden muss.<\/li>\n<\/ol>\n<p>B ist die korrekte Antwort, da wir in Zeile 3 ein anonymes Feld mit den Elementen 1, 2 und 3 anlegen. An der Stelle 1 befindet sich die Zahl 2, da in Java genauso wie in C(++) der Feldindex bei Null beginnt. Da Felder in Java besondere Objekte sind (sogenannte Array-Objekte innerhalb der virtuellen Maschine) weist die Zuweisung in Zeile 2 dem feld Objekt eine g\u00fcltige Referenz zu. Demnach ist C falsch. Die Feldgr\u00f6\u00dfe kann in Java nur durch die spezielle Form des new-Operator festgelegt werden, nicht durch reine Deklaration des Feldes. Also ist auch D falsch.<\/p>\n<h3>Frage<\/h3>\n<p>Was passiert, wenn folgendes Programm kompiliert wird?<\/p>\n<pre>public class Clazz {\n  public static void main( String args[] ){\n    int feld[] = new int[5];\n    System.out.println( feld[0] );\n  }\n}<\/pre>\n<ol>\n<li>\u00dcbersetzungsfehler, da feld vor der Benutzung nicht definiert wurde. <\/li>\n<li>null <\/li>\n<li>0 <\/li>\n<li>5<\/li>\n<\/ol>\n<p>Das Programm definiert eine Feld und weist der Referenz ein Feld der Gr\u00f6\u00dfe von 5 int zu. Das Feld ist dabei mit 0 Werten initialisiert. Demnach ist der Zugriff auf feld[0] bis feld[4] erlaubt und jeder der Eintr\u00e4ge ist 0. C ist die einzige richtige Antwort.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Frage Analysiere die Quellcodezeile if ( 5 &amp; 7 &gt; 0 ) System.out.println( &quot;Hullahupp-Reifen&quot; ); Diese Zeile l\u00e4sst sich nicht kompilieren Diese Zeile l\u00e4sst sich kompilieren, aber nichts erscheint auf der Standardausgabe Dieser Code l\u00e4sst sich kompilieren und das Wort &quot;Hullahupp-Reifen&quot; erscheint in der Standard-Ausgabe. Innerhalb vom Schleifen und Verzweigungen muss der Typ boolean sein. [&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-2402","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\/2402","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=2402"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2402\/revisions"}],"predecessor-version":[{"id":2403,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2402\/revisions\/2403"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}