- long 타입에 접미사 'L'이 없으면 무슨 타입으로 인식될까?
Java에서 숫자 리터럴을 표현할 때, 기본적으로 정수형은 int 타입으로 인식된다. long 타입의 숫자 리터럴을 표현할 때는 리터럴 값 끝에 대문자 L 또는 소문자 l을 붙여주어야 한다.
long 타입의 숫자 리터럴에 대문자 L 또는 소문자 l을 붙이지 않고 그냥 숫자만 표현하면, Java 컴파일러는 해당 리터럴을 int 타입으로 인식한다. 따라서 long 타입으로 인식하기 위해서는 반드시 L 또는 l을 붙여주어야 한다.
// long 타입 리터럴
long l = 123456789L;
// int 타입으로 인식됨
long l2 = 10_000_000_000; // 에러 발생.
// long 타입으로 인식하려면 10000000000L과 같이 L을 붙여줘야 함
long l3 = 10_000_000_000L;