JAVA

JAVA

[Java] ArrayList 와 HashMap

자바 컬렉션 내 가장 많이 사용하는 자료구조 중 ArrayList 와 HashMap 이 있다. 사용하면서도 용도를 제대로 이해하지 않고 사용하는 것 같아 성능 및 사용 사례에 대해 정리해보려한다. ArrayList 와 HashMap 1. ArrayList - 구조 : 내부적으로 데이터를 배열 형태로 저장하며 요소를 추가하거나 제거할 때 크기를 동적으로 조정한다. - 접근 방법 : 인덱스를 통해 접근. - 사용 사례 : 순서가 중요하거나 혹은 인덱스를 통한 빠른 접근이 필요할 때 사용한다. - 크기 조정을 해야하는 경우 내부적으로 배열을 재할당하고 기존 요소를 새 배열로 복사해야하기 때문에 많은 양의 데이터를 추가하거나 삭제하는 경우 성능 저하가 발생할 수 있다. 2. HashMap - 구조 : 키-값 쌍..

JAVA

[Java] LocalDateTime 과 Instant

프로젝트 진행 중에 데이터를 생성한 시간과 업데이트한 시간에 대한 필드를 정의하며 타입에 대한 고민이 들었다. LocalDateTime 만을 고려하고 있다가 Instant 라는 타입을 처음 알았기 때문이다. 해서 그에 대해 정리를 해보려한다. LocalDateTime 과 Instant 이 둘은 자바 8부터 도입된 날짜와 시간을 표현하는 데에 사용된다. 1. LocalDateTime - 시간대 정보를 포함하지 않으며 단순히 연, 월, 일, 시 등의 지역 날짜와 시간을 나타낸다. - 로컬 서버의 날짜와 시간을 나타내며 그것이 어느 시간대에 속하는 지는 명시하지 않는다. - 날짜, 시간 등을 더하고 빼는 등의 연산이 간단하다. - 시간대에 민감하지 않고 지역적인 서비스에 적합하다. 2. Instant - UT..

JAVA

[JAVA] 체크 예외와 언체크 예외

평소 체크 예외와 언체크 예외의 용도를 생각하지 않고 사용했던 것 같아 정리를 해본다. 체크 예외(Checked Exception)와 언체크 예외(Unchecked Exception) 1. 체크 예외 ( Checked Exception ) - 컴파일러가 예외를 확인하므로 컴파일 타임에 예외를 발생시킨다. - 예외를 처리하기위해 try-catch 블록이나 throws 를 사용해야 한다. ex> IOException, FileNotFoundException public class CheckedExceptionExample { public static void main(String[] args) { try { File file = new File("nonexistent.txt"); FileInputStream..

JAVA

[이펙티브자바] Item1. 생성자 대신 정적 팩터리 메서드를 고려하라

이펙티브 자바 책을 읽으며 내 생각을 바탕으로 정리하며 이해하기 위함이다. 생성자와 정적 팩터리 메서드 1. 생성자 클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자이고, 예시는 아래와 같다. public class Car { private final String type; public Car(String type) { // ★ public 생성자 this.type = type; } @Override public String toString() { return "Car type: " + type; } public static void main(String[] args) { Car car = new Car("Sports"); System.out.println(car); // Car ..

JAVA

[Java] Access Level 에 관하여

Access Level 을 protected 로 설정하는데 왜 protected 로 설정하는지 protected 로 설정했을 때의 접근 영역이 어딘지 헷갈려 정리를 해보려한다. Access Level 의 필요성 접근 레벨을 가장 흔하게 적용하는 예는 아래와 같이 기본생성자를 만들 때이다. 보안상의 문제로 public 을 쓰지 않는다면 왜 private 을 사용하지 않는가에 대한 의문을 하지 못했던 것 같다. @NoArgsConstructor(access = AccessLevel.PROTECTED) // ★ 접근 레벨 설정 public class Member { .. } 우선, public 이 아닌 이유는 외부에서의 무분별한 생성을 막기위해서이고 private 이 아닌 이유는 JPA의 프록시 객체를 생성해..

JAVA

[Java] stream.map() 동작 및 예제

자바 8 이상부터 가능한 Stream 기능 중, map 에 대한 내용이다. map() 동작 및 예제 1. .stream().map(Function

JAVA

[Java] record 사용방법 및 예제

jdk 17 의 기능 중 record 에 대한 내용이다. record 의 쓰임새 record 는 언제 쓰는 게 좋을까 ? record 는 데이터를 저장하기위한 클래스로 생성된 인스턴스의 값을 변경할 수 없다. 그렇기 때문에, 서로 다른 계층 간 불변 데이터를 전송할 때 유용하게 쓰일 수 있으며 기본 메서드를 자동으로 생성해주어 편리하게 사용할 수 있다. 또한, 공식문서에서 확인할 수 있듯이 equals(), hashCode(), toString() 를 제공한다. record 사용방법 1. DTO with record 사용자의 입력을 저장하여 데이터를 전달하는 MemberDTO 가 있다고 하자. MemberDTO 가 사용자의 이메일, 비밀번호, 이름 필드를 가진다고 했을 때 record 로 생성한 예가 아..

JAVA

[Java] stream.filter() 동작 및 예제

자바 8 이상부터 가능한 Stream 기능 중, filter에 대한 내용이다. filter() 동작 및 예제 1. .stream().filter(Predicate

limnj
'JAVA' 카테고리의 글 목록