{"id":40683,"date":"2024-05-30T13:05:45","date_gmt":"2024-05-30T11:05:45","guid":{"rendered":"https:\/\/www.happycoders.eu\/?p=40683"},"modified":"2025-06-12T08:42:05","modified_gmt":"2025-06-12T06:42:05","slug":"main-methode","status":"publish","type":"post","link":"https:\/\/www.happycoders.eu\/de\/java\/main-methode\/","title":{"rendered":"Java main()-Methode \u2013 Mit Neuerungen 2024\/2025"},"content":{"rendered":"\n<p>In diesem Artikel erf\u00e4hrst du alles \u00fcber die <em>main<\/em>-Methode in Java \u2013 dem Startpunkt eines jeden Java-Programms. Der Artikel beschreibt auch die in <a href=\"https:\/\/www.happycoders.eu\/de\/java\/java-25-features\/#compact-source-files-and-instance-main-methods-jep-512\">Java 25<\/a> finalisierten <a href=\"#compact-source-files-and-instance-main-methods\">Vereinfachungen<\/a>.<\/p>\n\n\n\n<p>Du erf\u00e4hrst im einzelnen:<\/p>\n\n\n\n<ul class=\"wp-block-list hc-checked-list\">\n<li>Was ist eine <code>main()<\/code>-Methode, und wof\u00fcr brauchen wir sie?<\/li>\n\n\n\n<li>Wie wird die <code>main()<\/code>-Methode aufgerufen? <\/li>\n\n\n\n<li>Was sind die Bestandteile der <code>main()<\/code>-Methode in Java, und was bedeuten sie?<\/li>\n\n\n\n<li>Wie kann man in neuen Java-Versionen die <code>main()<\/code>-Methode wesentlich einfacher schreiben?<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"was-ist-eine-main-methode-in-java\">Was ist eine main()-Methode in Java?<\/h2>\n\n\n\n<p>Damit ein Java-Programm gestartet werden kann, ben\u00f6tigt es eine <em>main<\/em>-Methode. Diese Methode ist der Einstiegspunkt in das Programm. Die JVM (Java Virtual Machine) ruft beim Start eines Programms diese <em>main<\/em>-Methode auf und f\u00fchrt den darin liegenden Java-Code aus. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"beispiel-fuer-eine-main-methode-in-java\">Beispiel f\u00fcr eine main()-Methode in Java<\/h3>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<p>Ein einfaches Hello-World-Java-Programm mit einer <em>main<\/em>-Methode sieht z. B. so aus:<\/p>\n<\/div>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">HelloWorld<\/span> <\/span>{\n  <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">(String&#091;] args)<\/span> <\/span>{\n    System.out.println(<span class=\"hljs-string\">\"Hello world!\"<\/span>);\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Um dieses Programm zu starten, speichere den Programmcode zun\u00e4chst in einer Datei mit dem Namen <em>HelloWorld.java<\/em>.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<p>Gebe dann auf der Kommandozeile \/ in einem Terminal den folgenden Befehl ein:<\/p>\n<\/div>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Klartext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">java HelloWorld.java<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Klartext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Du solltest nun folgende Ausgabe sehen:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Klartext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Hello world!<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Klartext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Gl\u00fcckwunsch! Du hast dein erstes Java-Programm geschrieben und gestartet. <\/p>\n\n\n\n<p>Aber warum war das so kompliziert?<\/p>\n\n\n\n<p>Was bedeuten all die Begriffe wie <code>public<\/code>, <code>class<\/code>, <code>static<\/code>, <code>void<\/code>, etc. im Programmcode?<\/p>\n\n\n\n<p>Die gute Nachricht: Das musst du als Anf\u00e4ngerin \/ als Anf\u00e4nger zun\u00e4chst gar nicht wissen. Denn: In modernen Java-Versionen geht das viel einfacher!<\/p>\n\n\n\n<p>Wie? Das wirst du im folgenden Abschnitt sehen.<\/p>\n\n\n\n<p>(Falls es dich dennoch interessiert, findest du eine detaillierte Beschreibung aller Bestandteile der <em>main<\/em>-Methode weiter unten im Abschnitt <a href=\"#syntax-der-java-main-methode\">Syntax der Java-main()-Methode<\/a>.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"vereinfachte-main-methode\">Vereinfachte main()-Methode<\/h2>\n\n\n\n<p>In <a href=\"https:\/\/www.happycoders.eu\/de\/java\/java-21-features\/#Unnamed_Classes_and_Instance_Main_Methods_Preview_JEP_445\">Java 25<\/a> wurde die <em>main<\/em>-Methode stark vereinfacht (die Vereinfachungen waren von Java 21 bis Java 24 als Preview-Feature verf\u00fcgbar).<\/p>\n\n\n\n<p>In diesem Abschnitt zeige ich dir, was sich f\u00fcr dich \u00e4ndert. Die technischen Details hinter diesen \u00c4nderungen erf\u00e4hrst du im Abschnitt <a href=\"#compact-source-files-and-instance-main-methods\">Compact Source Files and Instance Main Methods<\/a>.<\/p>\n\n\n\n<p>Gehen wir noch einmal zur\u00fcck zum Hello-World-Beispiel aus dem ersten Abschnitt:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">HelloWorld<\/span> <\/span>{\n  <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">(String&#091;] args)<\/span> <\/span>{\n    System.out.println(<span class=\"hljs-string\">\"Hello world!\"<\/span>);\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Du musstest hier eine ganze Menge sogennanten \u201eBoilerplate Code\u201d schreiben \u2013 also Code, der in jedem Java-Programm immer wieder der gleiche w\u00e4re. Dabei ist das einzige, was du sagen willst: \u201eBitte gib den Text \u201aHello World!\u2018 aus.\u201d<\/p>\n\n\n\n<p>In Java 25 (und in Java 21 bis 24 mit aktivierten Preview-Features) kannst du das bereits viel k\u00fcrzer schreiben:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n  IO.println(<span class=\"hljs-string\">\"Hello world!\"<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Die <code>main<\/code>-Methode und der Ausgabebefehl <code>println<\/code> sind noch da \u2013 doch eine Menge Boilerplate-Code drum herum wurde gel\u00f6scht, und <code>System.out.println()<\/code> wurde zu <code>IO.println()<\/code> verk\u00fcrzt.<\/p>\n\n\n\n<p>Somit m\u00fcssen sich Java-Anf\u00e4ngerinnen und -Anf\u00e4nger in Zukunft keine Gedanken mehr \u00fcber <code>public<\/code>, <code>class<\/code>, <code>static<\/code>, etc. machen. Diese Begriffe k\u00f6nnen dann eingef\u00fchrt werden, wenn sie wirklich gebraucht werden.<\/p>\n\n\n\n<p>Beachte bitte, dass du Preview-Features explizit aktivieren musst. Wenn du beispielsweise die Java-24-Variante in einer Datei <em>HelloWorld24.java<\/em> speicherst, dann musst du das Programm wie folgt starten:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"Klartext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">java --enable-preview --source 24 HelloWorld24.java<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Klartext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Im folgenden Kapitel erf\u00e4hrst du, welche technischen Details hinter den Ver\u00e4nderungen stecken.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"compact-source-files-and-instance-main-methods\">Compact Source Files and Instance Main Methods<\/h2>\n\n\n\n<p><em>(In Java 24 hie\u00df dieses Feature: \u201eSimple Source Files and Instance Main Methods\u201c.<br> Vor Java 24 hie\u00df dieses Feature: \u201eImplicitly Declared Classes and Instance Main Methods\u201c.)<\/em><\/p>\n\n\n\n<p>Im vorherigen Abschnitt hast du erfahren, dass eine Java-<em>main<\/em>-Methode in Zukunft ohne Klasse, ohne <code>public static<\/code> und ohne <code>String[] args<\/code> geschrieben werden kann und dass f\u00fcr die Ausgabe statt <code>System.out.println(<code>...<\/code>)<\/code> das k\u00fcrzere <code>IO.println(...)<\/code> gen\u00fcgt.<\/p>\n\n\n\n<p>Damit ist der folgende Code in Zukunft ein g\u00fcltiges und vollst\u00e4ndiges Java-Programm:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n  IO.println(<span class=\"hljs-string\">\"Hello world!\"<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Dieser Abschnitt beschreibt detailliert die \u00c4nderungen, die diese Vereinfachung erm\u00f6glicht haben.<\/p>\n\n\n\n<p>Vorab die Historie der \u00c4nderungen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Alles begann in <a href=\"\/de\/java\/java-21-features\/#Unnamed_Classes_and_Instance_Main_Methods_Preview_JEP_445\">Java 21<\/a> mit einem Preview-Feature mit dem kompliziert klingenden Namen \u201eUnnamed Classes and Instance Main Methods\u201d (definiert in <a href=\"https:\/\/openjdk.org\/jeps\/445\" target=\"_blank\" rel=\"noopener\">JDK Enhancement Proposal 445<\/a>). <\/li>\n\n\n\n<li>In <a href=\"\/de\/java\/java-22-features\/#Implicitly_Declared_Classes_and_Instance_Main_Methods_Second_Preview_JEP_463\">Java 22<\/a> wurde das Feature in die noch kompliziertere Bezeichnung \u201eImplicitly Declared Classes and Instance Main Methods\u201d umgenannt (definiert in <a href=\"https:\/\/openjdk.org\/jeps\/463\" target=\"_blank\" rel=\"noopener\">JDK Enhancement Proposal 463<\/a>).<\/li>\n\n\n\n<li>In <a href=\"https:\/\/www.happycoders.eu\/de\/java\/java-23-features\/#implicitly-declared-classes-and-instance-main-methods-third-preview-jep-477\">Java 23<\/a> wurde das Feature noch einmal verbessert (<a href=\"https:\/\/openjdk.org\/jeps\/477\" target=\"_blank\" rel=\"noopener\">JDK Enhancement Proposal 477<\/a>).<\/li>\n\n\n\n<li>In <a href=\"https:\/\/www.happycoders.eu\/de\/java\/java-24-features\/#Simple_Source_Files_and_Instance_Main_Methods_Fourth_Preview_JEP_495\">Java 24<\/a> wird das Feature umbenannt in \u201eSimple Source Files and Instance Main Methods\u201c, bleibt aber weiter im Preview-Stadium (<a href=\"https:\/\/openjdk.org\/jeps\/495\" target=\"_blank\" rel=\"noopener\">JDK Enhancement Proposal 495<\/a>).<\/li>\n\n\n\n<li>In <a href=\"https:\/\/www.happycoders.eu\/de\/java\/java-25-features\/#compact-source-files-and-instance-main-methods-jep-512\">Java 25<\/a> wurde das Feature unter dem Namen \u201eCompact Source Files and Instance Main Methods\u201c finalisiert.<\/li>\n<\/ul>\n\n\n\n<p>Im Folgenden beschreibe ich die vier Bestandteile des neuen Features: kompakte Quelldateien, implizit deklarierte Klassen, Instanz-main-Methoden und die automatisch importierte <code>java.lang.IO<\/code>-Klasse.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"compact-source-files\">Compact Source Files<\/h3>\n\n\n\n<p>Eine Java-Datei ohne explizite Klassendeklaration, also ohne beispielsweise <code>public class HelloWorld<\/code> wird als \u201eCompact Source File\u201d, also \u201ekompakte Quelldatei\u201d bezeichnet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"implizit-deklarierte-klassen\">Implizit deklarierte Klassen<\/h3>\n\n\n\n<p>Aus dem in einer einfachen Quelldatei enthaltenen Code erzeugt der Java-Compiler in Zukunft eine sogenannte \u201eimplizit deklarierte Klasse\u201d mit einem vom Compiler festgelegten Namen. In der Regel ist das der Name der Datei ohne die <em>.java<\/em>-Endung.<\/p>\n\n\n\n<p>Wenn du beispielsweise die Datei <em>HelloWorld.java<\/em> kompilierst, erzeugt der Compiler die Datei <em>HelloWorld.class<\/em> \u2013 und wenn du diese z. B. mit deiner IDE dekompilierst, siehst du, dass auch der Klassenname <code>HelloWorld<\/code> ist.<\/p>\n\n\n\n<p>F\u00fcr implizite Klassen gelten die folgenden Besonderheiten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Eine implizit deklarierte Klasse liegt immer im unbenannten Paket (so wie eine regul\u00e4re Klasse ohne <code>package<\/code>-Definition).<\/li>\n\n\n\n<li>Eine implizit deklarierte Klasse ist grunds\u00e4tzlich <code>final<\/code>, von ihr kann also nicht geerbt werden.<\/li>\n\n\n\n<li>Eine implizit deklarierte Klasse kann keine Interfaces implementieren oder von anderen Klassen erben.<\/li>\n\n\n\n<li>Auf eine implizit deklarierte Klasse kann nicht \u00fcber den vom Compiler festgelegten Namen zugegriffen werden, d. h. andere Klassen k\u00f6nnen eine implizit deklarierte Klasse nicht instanziieren, und keine Methoden darauf aufrufen, auch keine statischen.<\/li>\n<\/ul>\n\n\n\n<p>Eine implizit deklarierte Klasse kann jedoch Methoden auf sich selbst aufrufen, d. h. Methoden, die in derselben <em>.java<\/em>-Datei definiert sind, so wie in folgendem Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n  println(greeting());\n}\n\n<span class=\"hljs-function\">String <span class=\"hljs-title\">greeting<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n  <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"Hello, World!\"<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Da auf eine implizit deklarierte Klasse von au\u00dferhalb nicht zugegriffen werden kann, muss sie immer eine <em>main<\/em>-Methode enthalten.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"instanz-main-methoden\">Instanz-main-Methoden<\/h3>\n\n\n\n<p>Instanz-<em>main<\/em>-Methoden sind nicht-statische <em>main<\/em>-Methoden, also <em>main<\/em>-Methoden ohne das <code>static<\/code>-Keyword. Folgende <em>main<\/em>-Methoden sind zuk\u00fcnftig erlaubt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>nicht statische Instanz-Methoden,<\/li>\n\n\n\n<li>Methoden mit dem Sichtbarkeitslevel <em>public<\/em>, <em>protected<\/em> oder <em>package-private<\/em> (ohne Modifier),<\/li>\n\n\n\n<li>Methoden mit oder ohne <code>String[]<\/code>-Parameter.<\/li>\n<\/ul>\n\n\n\n<p>Hier sind ein paar Beispiele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>void main()<\/code><\/li>\n\n\n\n<li><code>void main(String[] args)<\/code><\/li>\n\n\n\n<li><code>public void main()<\/code><\/li>\n\n\n\n<li><code>protected static void main(String[] args)<\/code><\/li>\n<\/ul>\n\n\n\n<p>Statische und nicht-statische Methoden mit gleicher Signatur sowie Methoden mit unterschiedlichen Visibility-Modifiern bei gleicher Signatur schlie\u00dfen sich gegenseitig aus und f\u00fchren zu einem \u201emethod is already defined\u201d-Compiler-Fehler. <\/p>\n\n\n\n<p>Es ist allerdings m\u00f6glich, dass gleichzeitig eine <em>main<\/em>-Methode <em>mit<\/em> <code>String[]<\/code>-Parameter und eine <em>main<\/em>-Methode <em>ohne<\/em> Parameter in derselben <em>.java<\/em>-Datei existieren:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">(String&#091;] args)<\/span> <\/span>{\n  . . .\n}\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">protected<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n  . . .\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>F\u00fcr diesen Fall wurde festgelegt, dass die Methode <em>mit<\/em> <code>String[]<\/code>-Parameter Priorit\u00e4t hat, im Beispiel also <code>void main(String[] args)<\/code> gestartet werden w\u00fcrde.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"konsoleninteraktion-mit-java-lang-io\">Konsoleninteraktion mit java.lang.IO<\/h3>\n\n\n\n<p>In der dritten Preview-Phase der \u00c4nderungen, in Java 23, wurde die neue <code>IO<\/code>-Klasse eingef\u00fchrt \u2013 mit folgenden statischen Methoden:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>void print(Object obj)<\/code> \u2013 gibt den \u00fcbergebenen Text oder die Text-Repr\u00e4sentation des \u00fcbergebenen Objekts auf der Konsole aus \u2013 <em>ohne<\/em> Zeilenumbruch am Ende.<\/li>\n\n\n\n<li><code>void println(Object obj)<\/code> \u2013 gibt den \u00fcbergebenen Text oder die Text-Repr\u00e4sentation des \u00fcbergebenen Objekts auf der Konsole aus \u2013 <em>mit<\/em> Zeilenumbruch am Ende.<\/li>\n\n\n\n<li><code>String readln(String prompt)<\/code> \u2013 zeigt den \u00fcbergebenen Prompt an, nimmt eine Benutzereingabe entgegen und gibt diese zur\u00fcck.<\/li>\n<\/ul>\n\n\n\n<p>In Java 23 und Java 24 importiert eine impliziert deklarierte Klasse automatisch alle&nbsp;<code>java.io.IO<\/code>-Methoden, so dass z. B. die <code>println()<\/code>-Methode ohne qualifizierenden Klassennamen-Pr\u00e4fix aufgerufen werden kann.<\/p>\n\n\n\n<p>In Java 25 wurde die <code>IO<\/code>-Klasse in das Paket <code>java.lang<\/code> verschoben und der automatische Import der <code>IO<\/code>-Methoden wieder entfernt. Das bedeutet, dass wir ab Java 25 entweder <code>IO.println()<\/code> schreiben m\u00fcssen \u2013 oder die <code>println()<\/code>-Methode statisch importieren m\u00fcssen:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-keyword\">static<\/span> java.lang.IO.*;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Durch diese Import-Deklaration k\u00f6nnen wir dann <code>println()<\/code> und die anderen <code>IO<\/code>-Methoden wieder ohne Klassennamen-Pr\u00e4fix aufrufen.<\/p>\n\n\n<div class=\"convertkit-form wp-block-convertkit-form\" style=\"\"><script async data-uid=\"1427197203\" src=\"https:\/\/happycoders.kit.com\/1427197203\/index.js\" data-jetpack-boost=\"ignore\" data-no-defer=\"1\" data-no-optimize=\"1\" nowprocket><\/script><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"syntax-der-java-main-methode\">Syntax der Java-main()-Methode<\/h2>\n\n\n\n<p>Dieser Abschnitt beschreibt die Syntax der <em>main<\/em>-Methode vor den in Java 21 eingef\u00fchrten Vereinfachungen. Bisher musste eine <em>main<\/em>-Methode in eine Klasse eingebettet sein, und ihre Syntax war fest vorgegeben:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> class MyMainMethodDemo\n  <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">(String&#091;] args)<\/span> <\/span>{\n    <span class=\"hljs-comment\">\/\/ code to execute<\/span>\n  }\n  <span class=\"hljs-comment\">\/\/ possibly more code<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Nur der Name der Klasse, im Beispiel <code>MyMainMethodDemo<\/code>, und der Name des Parameters, im Beispiel <code>args<\/code>, d\u00fcrfen frei gew\u00e4hlt werden.<\/p>\n\n\n\n<p>Wenn ein Programm aus mehreren Klassen besteht, d\u00fcrfen beliebig viele dieser Klassen eine <code>main()<\/code>-Methode enthalten. Zum Start eines Programms wird, wie zu Beginn des Artikels gezeigt, der Name der Klasse angegeben, deren <code>main()<\/code>-Methode gestartet werden soll.<\/p>\n\n\n\n<p>Was bedeuten die einzelnen Elemente?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"public-class-mymainmethoddemo\">public class MyMainMethodDemo<\/h3>\n\n\n\n<p>Mit dieser ersten Codezeile wird eine <a href=\"https:\/\/de.wikipedia.org\/wiki\/Klasse_(Objektorientierung)\" target=\"_blank\" rel=\"noopener\">Klasse<\/a> im Sinne der objektorientierten Programmierung eingeleitet. <code>MyMainMethodDemo<\/code> ist der Name der Klasse. Java-Code ist immer innerhalb von Klassen angeordnet. <\/p>\n\n\n\n<div class=\"wp-block-uagb-info-box uagb-block-d21d8136 uagb-infobox__content-wrap  uagb-infobox-icon-left uagb-infobox-left uagb-infobox-stacked-mobile uagb-infobox-image-valign-top hc-infobox\"><div class=\"uagb-ifb-icon-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z\"><\/path><\/svg><\/div><div class=\"uagb-ifb-content\"><div class=\"uagb-ifb-title-wrap\"><\/div><p class=\"uagb-ifb-desc\">Mit <a href=\"#simple-source-files-and-instance-main-methods\">kompakten Quelldateien und Instanz-Hauptmethoden<\/a> ist dies nicht mehr erforderlich.<\/p><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"public-static-void-mainstring-args\">public static void main(String[] args)<\/h3>\n\n\n\n<p>Mit der zweiten Zeile, der sogenannten Methodensignatur, wird eine <a href=\"https:\/\/de.wikipedia.org\/wiki\/Methode_(Programmierung)\" target=\"_blank\" rel=\"noopener\">Methode<\/a> eingeleitet. Methoden enthalten den auszuf\u00fchrenden Programmcode.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"public\">public<\/h3>\n\n\n\n<p><code>public<\/code> ist ein sogenannter <a href=\"https:\/\/de.wikipedia.org\/wiki\/Sichtbarkeit_(Programmierung)\" target=\"_blank\" rel=\"noopener\">Sichtbarkeitsmodifikator<\/a>. Eine Klasse sowie die darin enthaltene <code>main()<\/code>-Methode m\u00fcssen <code>public<\/code>, also \u00f6ffentlich sein, damit die JVM die <code>main()<\/code>-Methode aufrufen und den darin enthaltenen Programmcode ausf\u00fchren kann.<\/p>\n\n\n\n<div class=\"wp-block-uagb-info-box uagb-block-480b6a83 uagb-infobox__content-wrap  uagb-infobox-icon-left uagb-infobox-left uagb-infobox-stacked-mobile uagb-infobox-image-valign-top hc-infobox\"><div class=\"uagb-ifb-icon-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z\"><\/path><\/svg><\/div><div class=\"uagb-ifb-content\"><div class=\"uagb-ifb-title-wrap\"><\/div><p class=\"uagb-ifb-desc\">Mit <a href=\"#simple-source-files-and-instance-main-methods\">kompakten Quelldateien und Instanz-Hauptmethoden<\/a> ist dies nicht mehr erforderlich.<\/p><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"static\">static<\/h3>\n\n\n\n<p>In der Objektorientierung wird zwischen <em>statischen<\/em> Methoden und <em>Instanz<\/em>methoden unterschieden. Statische Methoden k\u00f6nnen aufgerufen werden, ohne dass eine Instanz der sie umgebenden Klasse \u2013 also ein Objekt \u2013 erzeugt werden muss. Instanzmethoden k\u00f6nnen hingegen nur auf einem Objekt aufgerufen werden. <\/p>\n\n\n\n<p>Die <code>main()<\/code>-Methode in Java muss statisch sein, um ohne Instanziierung der Klasse \u2013 also ohne Erzeugung eines Objekts dieser Klasse \u2013 aufrufbar zu sein.<\/p>\n\n\n\n<div class=\"wp-block-uagb-info-box uagb-block-9dab1194 uagb-infobox__content-wrap  uagb-infobox-icon-left uagb-infobox-left uagb-infobox-stacked-mobile uagb-infobox-image-valign-top hc-infobox\"><div class=\"uagb-ifb-icon-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z\"><\/path><\/svg><\/div><div class=\"uagb-ifb-content\"><div class=\"uagb-ifb-title-wrap\"><\/div><p class=\"uagb-ifb-desc\">Mit <a href=\"#simple-source-files-and-instance-main-methods\">kompakten Quelldateien und Instanz-Hauptmethoden<\/a> ist dies nicht mehr erforderlich.<\/p><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"void\">void<\/h3>\n\n\n\n<p>Methoden k\u00f6nnen Werte zur\u00fcckgeben, z. B. gibt die Methode <code>Math.random()<\/code> eine Zufallszahl zur\u00fcck. Eine <code>main()<\/code>-Methode hat jedoch keinen R\u00fcckgabewert. Und genau das wird durch den Bezeichner <code>void<\/code> angegeben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"string-args\">String[] args<\/h3>\n\n\n\n<p>Hierbei handelt es sich um einen <a href=\"https:\/\/de.wikipedia.org\/wiki\/Parameter_(Informatik)\" target=\"_blank\" rel=\"noopener\">Parameter der Methode<\/a>. <code>String[]<\/code> ist der Typ des Parameters: ein String-Array. Und <code>args<\/code> ist der Name des Parameters. Dieser Name darf ge\u00e4ndert werden. Beim Start eines Programms k\u00f6nnen sogenannte Kommandozeilenparameter \u00fcbergeben werden, z. B. so:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"Klartext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">java HelloWorld.java happy coders out there<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Klartext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Diese Parameter werden als String-Array an die <code>main()<\/code>-Methode \u00fcbergeben und k\u00f6nnen dort z. B. so ausgelesen und ausgegeben werden:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">HelloWorld<\/span> <\/span>{\n  <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">(String&#091;] args)<\/span> <\/span>{\n    System.out.print(<span class=\"hljs-string\">\"Hello\"<\/span>);\n    <span class=\"hljs-keyword\">for<\/span> (String arg : args) {\n      System.out.print(<span class=\"hljs-string\">\" \"<\/span> + arg);\n    }\n    System.out.println(<span class=\"hljs-string\">\"!\"<\/span>);\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Wenn du dieses Programm wie oben aufrufst, bekommst du folgende Ausgabe:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"Klartext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Hello happy coders out there!<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Klartext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"fazit\">Fazit<\/h2>\n\n\n\n<p>Die <code>main()<\/code>-Methode ist der Startpunkt eines jeden Java-Programms. Ohne diese kann kein Java-Programm starten. Bisher war die Syntax von <code>main()<\/code>-Methoden starr vorgegeben:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">HelloWorld<\/span> <\/span>{\n  <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">(String&#091;] args)<\/span> <\/span>{\n    System.out.println(<span class=\"hljs-string\">\"Hello world!\"<\/span>);\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In <a href=\"https:\/\/www.happycoders.eu\/de\/java\/java-25-features\/#compact-source-files-and-instance-main-methods-jep-512\">Java 25<\/a> (und in Java 21 bis 24 mit aktivierten Preview-Features) kannst du dieselbe <code>main()<\/code>-Methode wie folgt schreiben:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n  IO.println(<span class=\"hljs-string\">\"Hello world!\"<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Das macht es inbesondere Java-Anf\u00e4ngerinnen und -Anf\u00e4ngern leichter, die Sprache zu erlernen. Konzepte, die erst f\u00fcr gr\u00f6\u00dfere Programme relevant werden, wie Klassen, die Unterscheidung in statische und Instanzmethoden, Sichtbarkeitsmodifikatoren wie <code>public<\/code>, <code>protected<\/code> und <code>private<\/code> sowie grobgranulare Strukturen wie Pakete und Module k\u00f6nnen so dann eingef\u00fchrt werden, wenn sie gebraucht werden.<\/p>\n<aside><p>Wenn dir der Artikel weitergeholfen hat, w\u00fcrde ich mich sehr \u00fcber eine positive Bewertung auf meinem <a href=\"https:\/\/www.provenexpert.com\/de-de\/sven-woltmann-happycoders-eu\/7smk\/\" target=\"_blank\" rel=\"noopener\">ProvenExpert-Profil<\/a> freuen. Dein Feedback hilft mir, meine Inhalte weiter zu verbessern und motiviert mich, neue informative Artikel zu schreiben.<\/p>\r\n                        <p>\ud83d\udc49 <a href=\"https:\/\/www.provenexpert.com\/de-de\/sven-woltmann-happycoders-eu\/7smk\/\" target=\"_blank\" rel=\"noopener\">Bewertung abgeben<\/a><\/p>\r\n                        <p>Du m\u00f6chtest \u00fcber alle neue Java-Features auf dem Laufenden sein? Dann <a href=\"#\" data-formkit-toggle=\"d8ee997126\">klicke hier<\/a>, um dich f\u00fcr den HappyCoders-Newsletter anzumelden.<\/p>\r\n                        <p>\ud83d\udc49 <a href=\"#\" data-formkit-toggle=\"d8ee997126\">Newsletter-Anmeldung<\/a><\/p><\/aside>","protected":false},"excerpt":{"rendered":"<p>Entdecke alles \u00fcber die main-Methode in Java, den Startpunkt eines jeden Java-Programms. Erfahre mehr \u00fcber die Bestandteile, Aufrufe und die neuesten Vereinfachungen in den Java-Versionen 21 bis 23.<\/p>\n","protected":false},"author":1,"featured_media":40696,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"Erfahre alles \u00fcber die main()-Methode in Java und die Neuerungen in Java 21-25. Entdecke die Syntax und die neue, vereinfachte Schreibweise.","_seopress_robots_index":"","_uag_custom_page_level_css":"","_wp_convertkit_post_meta":{"form":"-1","landing_page":"","tag":"0","restrict_content":"0"},"_metis_text_type":"standard","_metis_text_length":13600,"_post_count":0,"footnotes":""},"categories":[64],"tags":[219],"class_list":["post-40683","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-java-grundlagen"],"uagb_featured_image_src":{"full":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method.jpg",1770,986,false],"thumbnail":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method.jpg",150,84,false],"medium":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method.jpg",300,167,false],"medium_large":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method.jpg",768,428,false],"large":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method.jpg",1024,570,false],"feature_thumb_224":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-224x125.jpg",224,125,true],"feature_thumb_336":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-336x187.jpg",336,187,true],"feature_thumb_504":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-504x281.jpg",504,281,true],"feature_thumb_672":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-672x374.jpg",672,374,true],"half_400":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-400x223.jpg",400,223,true],"half_600":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-600x334.jpg",600,334,true],"full_800":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-800x446.jpg",800,446,true],"full_944":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-944x526.jpg",944,526,true],"full_1200":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-1200x668.jpg",1200,668,true],"wide_1180":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-1180x490.jpg",1180,490,true],"wide_1770":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method-1770x735.jpg",1770,735,true],"1536x1536":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method.jpg",1536,856,false],"2048x2048":["https:\/\/www.happycoders.eu\/wp-content\/uploads\/2024\/05\/java-main-method.jpg",1770,986,false]},"uagb_author_info":{"display_name":"Sven Woltmann","author_link":"https:\/\/www.happycoders.eu\/de\/author\/sven\/"},"uagb_comment_info":0,"uagb_excerpt":"Entdecke alles \u00fcber die main-Methode in Java, den Startpunkt eines jeden Java-Programms. Erfahre mehr \u00fcber die Bestandteile, Aufrufe und die neuesten Vereinfachungen in den Java-Versionen 21 bis 23.","public_identification_id":"17b31d442bc54e4bb8b9d29e8d5a0e1f","private_identification_id":"c0c3ad9c22b84127a845290a697a5df8","_links":{"self":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts\/40683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/comments?post=40683"}],"version-history":[{"count":10,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts\/40683\/revisions"}],"predecessor-version":[{"id":52437,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts\/40683\/revisions\/52437"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/media\/40696"}],"wp:attachment":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/media?parent=40683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/categories?post=40683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/tags?post=40683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}