<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: 04.03.05 Sonderfall main</title>
	<atom:link href="http://www.java-blog-buch.de/040305-sonderfall-main/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.java-blog-buch.de/040305-sonderfall-main/</link>
	<description>Ein Buch über Java Programmierung als Blog</description>
	<lastBuildDate>Tue, 31 Jan 2012 16:30:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Von: Stefan Kiesel</title>
		<link>http://www.java-blog-buch.de/040305-sonderfall-main/comment-page-1/#comment-741</link>
		<dc:creator>Stefan Kiesel</dc:creator>
		<pubDate>Wed, 28 Jan 2009 17:48:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.java-blog-buch.de/?p=634#comment-741</guid>
		<description>Das Kapitel wurde mittlerweile an die Anregungen in den Kommentaren angepasst.</description>
		<content:encoded><![CDATA[<p>Das Kapitel wurde mittlerweile an die Anregungen in den Kommentaren angepasst.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Stefan Kiesel</title>
		<link>http://www.java-blog-buch.de/040305-sonderfall-main/comment-page-1/#comment-7</link>
		<dc:creator>Stefan Kiesel</dc:creator>
		<pubDate>Thu, 25 Sep 2008 09:17:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.java-blog-buch.de/?p=634#comment-7</guid>
		<description>Die Signatur der Main-Methode darf auch noch mit den Schlüsselwörtern &lt;code&gt;strictfp, final&lt;/code&gt; und &lt;code&gt;synchronized&lt;/code&gt; ergänzt werden.</description>
		<content:encoded><![CDATA[<p>Die Signatur der Main-Methode darf auch noch mit den Schlüsselwörtern <code>strictfp, final</code> und <code>synchronized</code> ergänzt werden.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Sebastian Würkner</title>
		<link>http://www.java-blog-buch.de/040305-sonderfall-main/comment-page-1/#comment-6</link>
		<dc:creator>Sebastian Würkner</dc:creator>
		<pubDate>Wed, 17 Sep 2008 07:06:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.java-blog-buch.de/?p=634#comment-6</guid>
		<description>Hiho,

ich habe noch eine Variante, welche komplett ohne main auskommt.

&lt;pre&gt;public class Test {

  static {
  
    System.out.println(&quot;Ich laufe ohne main.&quot;);
    System.exit(0);
  }
}&lt;/pre&gt;

bye Saxony</description>
		<content:encoded><![CDATA[<p>Hiho,</p>
<p>ich habe noch eine Variante, welche komplett ohne main auskommt.</p>
<pre>public class Test {

  static {

    System.out.println("Ich laufe ohne main.");
    System.exit(0);
  }
}</pre>
<p>bye Saxony</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Sebastian Würkner</title>
		<link>http://www.java-blog-buch.de/040305-sonderfall-main/comment-page-1/#comment-5</link>
		<dc:creator>Sebastian Würkner</dc:creator>
		<pubDate>Fri, 12 Sep 2008 09:13:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.java-blog-buch.de/?p=634#comment-5</guid>
		<description>Hiho,

ja seit JDK 1.5 funktioniert es auch mit String... args.
Ein Blick auf den decompilierten Bytecode verrät aber was intern abläuft.

Source:
&lt;code&gt;public static void main (String… args)&lt;/code&gt;

JAD Decompiled:
&lt;code&gt;public static transient void main(String args[])&lt;/code&gt;

javap Disassembler:

Constant pool:&lt;code&gt;
const #5 = String       #27;    //  Parameter 1:
...
const #9 = String       #32;    //  Parameter 2:
&lt;/code&gt;
Signatur:&lt;code&gt;
public static void main(java.lang.String[]);
  Signature: ([Ljava/lang/String;)V
&lt;/code&gt;
Programmstart:&lt;code&gt;
 0:   aload_0
 1:   arraylength
 2:   iconst_2
&lt;/code&gt;
 Verwendung:&lt;code&gt;
 13:  invokespecial   #4; //Method java/lang/StringBuilder.&quot;&lt;init&gt;&quot;:()V
 16:  ldc     #5; //String Parameter 1:
...
 40:  invokespecial   #4; //Method java/lang/StringBuilder.&quot;&lt;init&gt;&quot;:()V
 43:  ldc     #9; //String Parameter 2:
&lt;/code&gt;

Also wie gehabt! ;)
Es wird einfach auf ein Array gemappt wie vermutet.

Zusätzlich sollte man bei Java varargs noch bedenken, dass nur der letzte Parameter so übergeben werden darf.

&lt;code&gt;public void machWas(String... att1, int i)&lt;/code&gt;

Das geht nicht.

bye Saxony</description>
		<content:encoded><![CDATA[<p>Hiho,</p>
<p>ja seit JDK 1.5 funktioniert es auch mit String&#8230; args.<br />
Ein Blick auf den decompilierten Bytecode verrät aber was intern abläuft.</p>
<p>Source:<br />
<code>public static void main (String… args)</code></p>
<p>JAD Decompiled:<br />
<code>public static transient void main(String args[])</code></p>
<p>javap Disassembler:</p>
<p>Constant pool:<code><br />
const #5 = String       #27;    //  Parameter 1:<br />
...<br />
const #9 = String       #32;    //  Parameter 2:<br />
</code><br />
Signatur:<code><br />
public static void main(java.lang.String[]);<br />
  Signature: ([Ljava/lang/String;)V<br />
</code><br />
Programmstart:<code><br />
 0:   aload_0<br />
 1:   arraylength<br />
 2:   iconst_2<br />
</code><br />
 Verwendung:<code><br />
 13:  invokespecial   #4; //Method java/lang/StringBuilder."<init>":()V<br />
 16:  ldc     #5; //String Parameter 1:<br />
...<br />
 40:  invokespecial   #4; //Method java/lang/StringBuilder."</init><init>":()V<br />
 43:  ldc     #9; //String Parameter 2:<br />
</init></code></p>
<p>Also wie gehabt! <img src='http://www.java-blog-buch.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Es wird einfach auf ein Array gemappt wie vermutet.</p>
<p>Zusätzlich sollte man bei Java varargs noch bedenken, dass nur der letzte Parameter so übergeben werden darf.</p>
<p><code>public void machWas(String... att1, int i)</code></p>
<p>Das geht nicht.</p>
<p>bye Saxony</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Illuvatar</title>
		<link>http://www.java-blog-buch.de/040305-sonderfall-main/comment-page-1/#comment-4</link>
		<dc:creator>Illuvatar</dc:creator>
		<pubDate>Fri, 12 Sep 2008 07:53:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.java-blog-buch.de/?p=634#comment-4</guid>
		<description>Mit
public static void main (String... args)
geht es übrigens auch ;)

Wobei ich mich da grade frage - gibt es varargs zur Laufzeit eigentlich überhaupt noch?</description>
		<content:encoded><![CDATA[<p>Mit<br />
public static void main (String&#8230; args)<br />
geht es übrigens auch <img src='http://www.java-blog-buch.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Wobei ich mich da grade frage &#8211; gibt es varargs zur Laufzeit eigentlich überhaupt noch?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

