Public c'est la portée de la fonction (il y a private aussi )
C'est vague, et il manque "protected"
static c'est pour dire que toute les variables que tu va écrire sous la fonction corréspondrons à la fonction (et donc à la classe)
C'est vague également.
Mais pour comprendre ces deux notions, il faudrait avoir acquis la notion de programmation orientée objet, et je doute donc que commencer par le java soit une bonne chose. Mais c'est mon avis
void ben c'est très abstrait c'est rien en fait, mais c'est pas rien non plus
écoutes les éxplications des tuto moi j'éxplique très mal 
C'est le type de retour de la fonction. En gros une fonction qui retourne "void" ne retourne rien, mais c'est déjà quelque chose
et (String[] args (c'est le type d'argument)
ça correspond aux arguments que tu mets en entrée de ton programme. Il s'agit d'un tableau qui contiendra les différents arguments entrés en paramètre.
Par exemple, si ton programme s'appelle toto et que tu entre dans une ligne de commande
toto Bonjour test 15
Le tableau args contiendra ["Bonjour"] ["test"] et ["15"]
Ensuite tu peux dans ton programme utiliser ces valeurs comme bon te semble
il y a aussi à part la variable String qui instensifie des charactère exemple :
String s = "Bonjour";
On dit "instancie"
Enfin, je ne pense pas que conseiller à quelqu'un qui n'y connait rien en programmation d'aller voir un tutoriel vidéo soit une très bonne chose. La plupart de ces tutos disent "Bonjour, aujourd'hui je vais vous apprendre à faire ça". Ils te pondent un truc en n'expliquant que la moitié des trucs qu'ils utilisent, et au final en 15 minutes de vidéos tu fais un programme de 5 lignes qui affiche une pauvre fenêtre avec du texte dedans 