I always figured "parameter" refers to the local variable in the method signature. "Argument" refers to the value that's passed to this parameter.
Here 'x' is a parameter of foo(). '3' is an argument passed to foo().

The mind is a strange and wonderful thing. I'm not sure that it will ever be able to figure itself out, everything else, maybe. From the atom to the universe, everything, except itself.

argument types: a list of the types of the arguments to the method member.
return type: the return type of the method member and the
throws clause: exception types declared in the throws clause of the method member.

Stephan van Hulst

Saloon Keeper

Posts: 7743

142

posted 5 years ago

The distinction is just as important as knowing the difference between "variable" and "value". It's an especially great help when you're studying generics, because the phrases "type parameter" and "type argument" are often used. Here "type parameter" will refer to a variable, often named T or E, which is able to hold a "type argument" or "type value" or simply a "type".

The mind is a strange and wonderful thing. I'm not sure that it will ever be able to figure itself out, everything else, maybe. From the atom to the universe, everything, except itself.

argument types: a list of the types of the arguments to the method member.
return type: the return type of the method member and the
throws clause: exception types declared in the throws clause of the method member.

As Jesper said in the first reply:

Those are two words that are often used for the same thing. There's no real difference.

And I will add: ...unless somebody chooses to make a distinction in some particular context.

If you look at the JLS's index under "argument", you'll see one or two entries, and "See also: parameter".

So it may not be entirely consistent in its usage. Although I do think the section you quoted could be referring the actual argument types. That is, the argument types list is telling us what the types of the actual arguments must be.