What's actually the difference between String[] and String... if any? The convention is to use String[] as the main method parameter, but using String... works too, since when you use varargs you can call the method in the same way you call a method with an array as parameter and the parameter itself will be an array inside the method body.
Use the string.equals(Object other) function to compare strings, not the == operator. The function checks the actual contents of the string, the == operator checks whether the references to the objects are equal. Note that string constants are usually "interned" such that two constants with the same value can actually be compared with ==, but it's better not to rely on that.
String Literals: Moreover, a string literal always refers to the same instance of class String. This is because string literals - or, more generally, strings that are the values of constant expressions (ยง15.28) - are "interned" so as to share unique instances, using the method String.intern. Similar examples can also be found in JLS 3.10.5-1.
How might I convert an ArrayListString stands for System.String and it is a .NET Framework type. string is an alias in the C# language for System.String. Both of them are compiled to System.String in IL (Intermediate Language), so there is no difference.
That String[] args part may become optional in future versions of Java. Work is underway to allow for simplified declaration of main method. See JEP 463: Implicitly Declared Classes and Instance Main Methods (Second Preview), a new feature previewed in Java 22. This is part of the paving the on-ramp initiative led by the Java team at Oracle to make Java easier to learn.