Sæll.
Ef við skoðum allt heila klabbið.
Það fyrsta sem þú gerðir var að skilgreina "klassa" með nafnið "HelloWorld", klassar eru einskonar "tegundir" af gögnum. T.d. eru tölur í Java af mismunandi "tegund" sem og texti (strengir).
Jæja, svo þú ert kominn með tegundina "HelloWorld" en hvað getur HelloWorld gert? Jú þú skilgreindir það sem kallað er "method" (aðgerð/aðferð) með nafnið "main".
Ef við förum í gegnum rununa:
public þýðir að allir sem hafa aðgang að klassanum geta notað þessa aðgerð.
static þýðir að þú getur notað þessa aðgerð beint án þess að fyrst vera búinn "búa til" hlut af tegundinni "HelloWorld". Til að reyna útskýr aðeins nánar, að ef þetta væri ekki static þá þyrftu allir sem vildu nota "Main" að hafa eintak af "HelloWorld" það geta þeir gert með því að nota svokallaðan byggir (constructor) til að búa til eintakið, t.d.
HelloWorld mittHelloWorldEintak = new HelloWorld();
Svo til að nota 'main' þarf að fyrst að búa til lista af string því það er það sem main tekur á móti, ef við viljum ekki senda inn neitt getum við skrifað "null" (því hingað til er ekkert inn í 'main' sem notar eitthvað frá listanum 'args´
mittHelloWorldeintak.main( null );
Næsta...
void þýðir að aðgerðin main gefur "ekkert" (void) tilbaka, það gæti hafa verið "int" til dæmis, en þá þyrfti að gefa einhverja tölu tilbaka í enda "main", það er gert með því að nota orðið "return", svo við gætum skrifað "return 5;" þá myndi "main" gefa til baka töluna 5.
Inn í svigunum stendur svo String[] args það þýðir að main vill taka á móti lista af tegundinni "String" og til þess að nota þennan lista í kóða inni í "main" myndi sá sem kóðar nota orðið "args" því það er (parameter name).
[] í String[] þýðir að þetta er listi (array) af String en ekki bara String. Til að útskýra þetta nánar gætirðu breytt kóðanum þannig að í staðinn fyrir "HelloWorld!" í sviganum gætirðu skrifað args[0], það myndi taka það fyrsta í listanum í staðinn og prenta það út.
Í forritun í mörgum málum er yfirleitt svona default nafn fyrir fyrstu aðgerðina sem tölvan á að byrja að gera, og í java (og fleiri forritunarmálum) er það "main", semsagt aðal "aðgerðin" þar sem þú myndir skrifa inn allar aðrar aðgerðir sem eiga að gerast í forritinu þínu.
Ef þú myndir compile-a forritinu með þessari args[0] breytingu gætirðu sent inn hvaða texta sem er í keyrslunni á forritinu og það myndi skrifa það út.
Get ekki útskýrt alveg allt hér en þessi síða er ágæt til þess að læra held ég:
http://www.learnjavaonline.org/
P.s. Með fyrirvara um smávillur síðan það er dálítið síðan ég kóðaði í Java, kóða næstum bara í C# þessa dagana...