Is the parameter String[] in the main method of a public class required by language design or is it based on other logic?
Java allows overloading of methods. To determine a method signature the name of the method must match and the type and the order of the parameters must match. For a main method to be an entry-point, it must be called "main" and the paramter list must be one parameter, a String array for the main method to be eligible to be an entry-point.