2024/12/15 2

[JAVA] String과 StringBuffer/StringBuilder

지금까지 코테 문제를 풀면서 StringBuffer을 사용한 이유는 그 순간에 StringBuffer을 사용하는 것이 성능에 도움이 될 것이라 판단했기 때문이라기보다는, 그저 append기능을 쓰기 위해서였습니다.그리고 문자열 연산 시 String의 문자열 합치기 기능보다 더 성능이 낫다고 들어서 정도의 이유였죠..또 StringBuffer보다 StringBuilder가 단일 스레드 연산에 더 효율적이라는 글을 읽은 뒤로는 StringBuilder을 열심히 썼어요. 과연 그 말이 항상 옳을까요? 그리고 셋의 차이점은 무엇일까요? String과 StringBuffer/StringBuilder은 모두 문자열을 다루는 클래스입니다.이중 어느 것을 사용하는 게 성능이 좋을지는 각 클래스의 특징을 알아야 판단할 ..

Java 2024.12.15

[DB/JPA] 기본 키 매핑(직접 할당 @Id /자동 할당 @GeneratedValue), 컬럼 매핑(@Column)

기본 키 매핑기본 키를 할당하는 방식은 두 가지입니다.직접 할당자동 할당기본 키 직접 할당기본키로 지정하고싶은 필드에 @Id를 붙여줍니다. @Id@Column(name = "ID")private int id; @Id 적용 가능 타입 :자바 기본형Wrapper 타입Stringjava.util.Datejava.sql.Datejava.math.BigDecimaljava.math.BigInteger @Id 필드에 개발자가 직접 값을 할당해야 합니다. 그런데 영속성 컨텍스트는 엔티티를 식별자값으로 관리하기 때문에 식별자 값이 할당되어야 영속성 컨텍스트의 관리를 받을 수 있습니다. 식별자 값이 없는 상태로 em.persist하면 예외가 발생하는데, 어떤 예외가 발생하는지는 jpa 표준에 정의되어있지 않습니다. 하이..

DB 2024.12.15