{"id":2410,"date":"2013-09-28T13:39:11","date_gmt":"2013-09-28T11:39:11","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2410"},"modified":"2013-09-28T13:39:11","modified_gmt":"2013-09-28T11:39:11","slug":"fragen-zur-java-zertifizierung-standardklassen","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/09\/fragen-zur-java-zertifizierung-standardklassen\/","title":{"rendered":"Fragen zur Java-Zertifizierung, Standardklassen"},"content":{"rendered":"<h3>Frage<\/h3>\n<p>Was ist die Ausgabe des folgenden Programmst\u00fccks bei der Ausf\u00fchrung?<\/p>\n<pre>int i = 3;\nint j = 0;\nfloat k = 3.2F;\nlong m = -3;\nif ( Math.ceil(i) &lt; Math.floor(k) )\n  if ( Math.abs(i) == m )&#160;&#160;&#160;&#160; System.out.println( i );\n  else&#160;&#160;&#160;&#160; System.out.println( j );\nelse&#160;&#160; System.out.println( Math.abs(m) + 1 );<\/pre>\n<ol>\n<li>-3 <\/li>\n<li>0 <\/li>\n<li>3 <\/li>\n<li>4 <\/li>\n<li>keine dieser<\/li>\n<\/ol>\n<p>Die Ausgabe ist 4.<\/p>\n<h3>Frage<\/h3>\n<p>Welche der folgenden sind g\u00fcltige Objektmethoden der Klasse String?<\/p>\n<ol>\n<li>equals( String ) <\/li>\n<li>equals( Object ) <\/li>\n<li>trim() <\/li>\n<li>round() <\/li>\n<li>toString()<\/li>\n<\/ol>\n<p>equls(Object) und toString() sind zwei Objekte, die von Object kommen. Also sind B und E richtig. Eine equals() Funktion mit der Parameter String gibt es nicht und muss es auch nicht geben. Also ist A falsch. Denn da equals(Object) f\u00fcr alle Objekt gilt, gilt im besonderen auch equals(String). Da die String Klasse equals() \u00fcberschreibt, wird schon darauf geachtet, dass keine beliebigen Objekte verglichen werden. trim() schneidet Leerzeichen vor und hinter der Zeichenkette ab, auch C ist richtig. Eine Rundungsfunktion ist bei String Objekten nicht n\u00f6tig und m\u00f6glich. round() ist eine Funktion der Klasse Math. Also ist D falsch.<\/p>\n<h3>Frage<\/h3>\n<p>Welche Anweisung ergibt den Wert -4.0? <\/p>\n<ol>\n<li>Math.floor( -4.7 ) <\/li>\n<li>Math.round( -4.7 ) <\/li>\n<li>Math.ceil( -4.7 ) <\/li>\n<li>Math.min( -4.7 )<\/li>\n<\/ol>\n<p>Antwort A und B erzeugen die Ausgabe -5 sind also falsch. Antwort C erzeugt die entsprechende Ausgabe. L\u00f6sung D kann nich kompiliert werden,da die min() Funktion zwei Parameter erwartet.<\/p>\n<h3>Frage<\/h3>\n<p>Was schreibt das Programm auf den Schirm?<\/p>\n<pre>String s = &quot;Ulli&quot;; \nint begin = 1;\nchar end = 3;\nSystem.out.println( s.substring(begin, end) );<\/pre>\n<ol>\n<li>Ull <\/li>\n<li>ll <\/li>\n<li>lli <\/li>\n<li>error: no method matching substring(int,char)<\/li>\n<\/ol>\n<p>B) ll<\/p>\n<h3>Frage<\/h3>\n<p>Welche Operationen sind bei den gegeben Deklarationen erlaubt? <\/p>\n<p>String s1 = new String(&quot;Hello&quot;)<br \/>\n  <br \/>String s2 = new String(&quot;there&quot;);<\/p>\n<p>String s3 = new String();<\/p>\n<ol>\n<li>s3 = s1 + s2; <\/li>\n<li>s3 = s1-s2; <\/li>\n<li>s3 = s1 &amp; s2 <\/li>\n<li>s3 = s1 &amp;&amp; s2<\/li>\n<\/ol>\n<p>A s3 = s1 + s2;<\/p>\n<h3>Frage<\/h3>\n<p>Gegeben ist das folgende Programm:<\/p>\n<pre>import java.util.Date;\n\npublic class Datum {\n  public static void main( String args[] ) {\n    Date d1 = new Date( 99, 11, 31 );\n    Date d2 = new Date( 99, 11, 31 );\n    foo( d1, d2 );\n    System.out.println( &quot;d1 ist &quot; + d1 + &quot;\\nd2 is &quot; + d2 );\n  }\n  public static void foo( Date d1, Date d2 ) {\n   d2.setYear( 100 );\n   d1 = d2;\n  }\n}<\/pre>\n<p>Welche Aussage trifft auf das Programm zu?<\/p>\n<ol>\n<li>Das Programm kompiliert und die Ausgabe ist<br \/>\n    <br \/>d1 ist Fri December 31 00:00:00 GMT 1999<\/p>\n<p>d2 ist Fri December 31 00:00:00 GMT 1999<\/li>\n<li>Das Programm kompiliert und die Ausgabe ist&#160; <br \/>d1 ist Fri December 31 00:00:00 GMT 1999\n<p>d2 ist Sun December 31 00:00:00 GMT 2000<\/li>\n<li>Das Programm kompiliert und die Ausgabe ist&#160; <br \/>d1 ist Sun December 31 00:00:00 GMT 2000\n<p>d2 ist Sun December 31 00:00:00 GMT 2000<\/li>\n<li>Die Anweisung &#8218;d1 = d2&#8216; wird vom Compiler zur\u00fcckgewiesen, da Date den Gleich-Operator nicht \u00fcberladen hat. <\/li>\n<li>Der Ausdruck (d1 is &quot; + d1 + &quot;\\nd2 is &quot; + d2) wird vom Compiler zur\u00fcckgewiesen, da die Date Klasse den Plus-Operator nicht \u00fcberladen kann.<\/li>\n<\/ol>\n<p>Das Programm l\u00e4sst sich korrekt kompilieren, da keine Zeile fehlerhaft ist. Daher sind Antwort D und E falsch. Mit dem Gleichheitszeichen werden lediglich die Referenzen unterschieden und das ist immer erlaubt. Auch der Plusoperator bereitet keine Probleme, da in im Zusammenbauen eines Ausgabestrings auf die Date-Objekte immer toString() aufgerufen wird. Fast alle Objekte nutzen diese Methode zur Identifikation ihrer inneren Werte. Nun bleiben zwei Dinge interessant. Zun\u00e4chst einmal der Konstruktor mit den Werten und die Methode foo(). Der Konstruktor ist in Ordnung und in der Ausgabe sind Stunde, Minute und Sekunde auf Null, da sie von uns nicht gesetzt wurde. Werfen wir einen Blick auf foo(). Es \u00e4ndert im ersten Objekt das Jahr auf 100. Aber da die Zuweisung nur lokal wirkt, \u00e4ndert sich d2 nicht und es ist ein klassischer Programmierfehler. Lokale Variablen haben keine Au\u00dfenwirkung. Nur im Block der Methode ist nun d1 mit d2 identisch, da d2 auf d1 zeigt. So sind auch die Jahreszahlen gleich. Aber nach dem Verlassen der Methode verschwindet auch die Zuweisung, nur die \u00c4nderung in d2 bleibt g\u00fcltig. d1 beh\u00e4lt das Jahr 99. Also ist C falsch. Es bleiben noch A und B als L\u00f6sungen. Nun muss man wissen, dass setYear(100) das Jahr tats\u00e4chlich auf&#160; 2000 setzt. Somit ergibt sich als richtige L\u00f6sung nur B, da d1 und d2 die Jahre 1999 und 2000 beschreiben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Frage Was ist die Ausgabe des folgenden Programmst\u00fccks bei der Ausf\u00fchrung? int i = 3; int j = 0; float k = 3.2F; long m = -3; if ( Math.ceil(i) &lt; Math.floor(k) ) if ( Math.abs(i) == m )&#160;&#160;&#160;&#160; System.out.println( i ); else&#160;&#160;&#160;&#160; System.out.println( j ); else&#160;&#160; System.out.println( Math.abs(m) + 1 ); -3 0 3 [&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-2410","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\/2410","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=2410"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2410\/revisions"}],"predecessor-version":[{"id":2411,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2410\/revisions\/2411"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}