「long n = 1_000_000_000_000;」がコンパイルエラーになる理由は何ですか。

デフォルトの整数リテラルはint型であり、その範囲を超える場合はLを付けてlong型であることを示す必要があります。