putting null as a parameter counts as a parameter (it's like saying there are 0 apples. Still a valid number, even if there are none).
In Java you must call a method exactly as it's specified. There's no such thing as default parameters. The one exception is the use of the ... token. This is a shorthand method of converting a list of parameters into an array (note that this can only be done once/method definition, and must be the last parameter).
If you want multiple methods which do the same thing but with multiple parameters, overload the method with the most parameters and have the other ones pass that method "default" values (true default values for parameters is not allowed in Java).
public static void foo(int a, int b, int c, String d)
// do stuff
public static void foo(int a)
// call foo with default b=0, c=0, d="hello"
foo(a, 0, 0, "hello");