Java言語には他のオブジェクト指向言語と同様に「型推論」機能が備わっています。

具体的には変数を定義する際に、型を指定する代わりに「var」と書くことで型指定を省略可能です。
ただし、初期値を代入することでコンパイラが型を推論するので、初期値の代入が必要です。

例えば次のソース1を見てください。

ソース1: 型推論の簡単な例
public class Main{
    public static void main(String[] args) {
        
        // 型推論を使わない場合
        int a = 1;
        System.out.println( a );

        // 型推論を使う場合
        var b = 1;
        System.out.println( b );
    }
}

この例では変数 b を定義する際に 1 を初期値として代入してますので、bは自動的にint型となります。

型推論は

というメリットがありますが、その反面

というデメリットもあります。
よって型推論を使用する際はどんな型に推論されたのか常に意識しておかないと思わぬ不具合に見舞われますので注意が必要です。