The same syntax is used to declare class variables (aka fields or properties), local variables in methods, and method arguments. In the last case, you can't specify an initial value.
// <type-name> <variable-name> [= <value>]; int a = 34; Integer b = 2+2;
The var keword was introduced in Java 10. It allows you to get the type of a local variable from the type of the initializing value. You can't declare a class field with var.
var c = false; // same as boolean c = false;
var i;// invalid, variable without initial value