[Java] long 과 Long의 차이점
long은 8바이트의 정수형 데이터 타입이며, 대소문자를 구분하지 않는다.
기본값으로 0L을 갖는다.
Long은 8바이트의 정수형을 감싸는 wrapper 클래스로, 대소문자를 구분한다.
기본값은 null 이다.
long a = 123L;
Long b = Long.valueOf(a);
long c = b.longValue();
위 코드 처럼 변환이 가능하다.
long은 보통 원시적인 숫자 값의 저장에 사용되는 데이터 타입이다.
long age = 30L;
long distance = 150000L;
Long은 long과 같은 숫자 값을 갖지만, 객체의 형태를 취하는 데이터 타입이다.
Long은 null 값을 포함할 수 있기 때문에, 값이 없는 상황에서는 Long을 사용하는 것이 적절할 수 있다.
Long id = 123456789L;
Long result = id.compareTo(987654321L);
if (result == 0) {
System.out.println("ID match!");
} else {
System.out.println("ID does not match!");
}
위 코드에서 compareTo() 메소드를 사용하여 다를 Long 값과 비교중이다.
Long 객체끼리 크기를 비교하여, id가 987654321L 과 같으면 0 을 반환하고,
그렇지 않으면 다른 값을 반환한다.
이러한 객체 간 비교와 같은 경우에 Long을 사용하는 것이 적절할 수 있다.
spring
Spring에서 Long은 일반적으로 DB의 id 컬럼과 매핑하는 데 사용한다.
보통 @Entity 어노테이션으로 표시된 JPA 엔티티 클래스에서 사용되며, 해당 클래스의 id 프로퍼티에 매핑된다.
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
// ...
}
@NoArgsConstructor
@Getter
@Setter
@Entity
public class Question {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long questionId;
private Long userId;
private String title;
}
댓글남기기