Java

Spring

[Spring/Java] Entity 클래스의 id값을 Long 타입으로 지정해야 하는 이유

@Entity @Getter public class Hello { @Id @GeneratedValue private Long id; @NotNull private String name; } int, long이 아닌 Wrapper Class인 Long을 쓰는 이유는 null값을 사용할 수 있기 때문이다. primitive type은 default값이 0으로 지정되어 있어 null이 될 수 없다. 예를 들어 id가 없는 경우 나타낼 수 없게 된다. null값을 정확하게 처리하기 위해서는 Wrapper Class를 사용하는 것이 더 좋은 방법이다. Wrapper Class의 Long과 Integer 중에서 Long을 쓰는 이유는 표현범위 때문이다. Long이 Integer보다 월등히 많은 수를 표현할 수 있기..

Java

Java 8과 Java 11의 차이

들어가기 앞서.. Java 11 은 Java8 이후 첫 번째 LTS(장기 지원) 릴리스이다. Oracle도 2019년 1월 Java 8 지원을 중단하는 등 결과적으로 많은 사람들이 Java 11로 업그레이드 할 것이다. Java8과 11의 차이점 Java 8 Java 11 애플릿 뷰어 도구 사용 가능 애플릿 뷰어 도구 사용 불가능 AWTUtilities 클래스 사용하지 않는 것이 좋음 AWTUtilities 클래스 사용 불가 String 문자열 관련 메소드가 적다 isBlank(), line(), repeat(n), stripLeading(), stripTrailing(), strip() 등과 같은 새로운 String 문자열 방법이 도입됨 람다 파라미터에는 특수 변수가 사용되지 않음 람다식에 사용할 va..

Java

String , StringBuilder, StringBuffer의 차이

Java에서 문자열을 다루는 대표적인 클래스로, String, SrtingBuilder, StringBuffer가 있다. 각 특징이 조금씩은 다르기 때문에 상황에 맞게 적절한 클래스를 사용해야 효율적인 코딩을 할 수 있다. String과 SrtingBuilder/StringBuffer String은 불변(immutable)의 속성을 가지고 있어 메모리 공간이 한 번 생기면 절대로 변하지 않는다. 반면, StringBuilder/Stringbuffer는 기존 메모리 영역에서 공간이 부족해지는 경우 버퍼의 크기를 유연하게 늘려주기 때문에 가변(mutable)의 속성을 가지고 있다. String String s = "abc"; s += "def"; "abc" 값을 가지는 변수 s에 "def" 라는 문자열을 더..

Java

Stack 클래스와 메소드 정리

Stack 클래스 스택은 모든 원소들의 삽입과 삭제가 리스트의 한쪽 끝에서만 수행되는 제한 조건을 가지는 선형 자료구조이다. LIFO(Last-In-First-Out)의 형태로, 마지막에 추가된 데이터를 가장 먼저 처리하는 구조를 가진다. java.util.Stack 스택을 사용하기 위해서 import를 해야 한다. 오버플로우(Overflow) / 언더플로우(Underflow) 오버 플로우 : 스택 공간이 가득찼을 때 데이터를 추가할 경우 스택 오버플로우 발생. 언더 플로우 : 스택 공간이 비었을 때 데이터를 꺼낼 경우 스택 언더플로우 발생. 메소드 정리 add() 스택에 데이터를 추가한다. (boolean형 반환) push() 스택에 데이터를 추가한다. pop() 최근에 추가된 데이터(top)를 삭제한..

seco
'Java' 태그의 글 목록