본문 바로가기

메뉴154

[JAVA] 직렬화(Serializable)와 역직렬화 [JAVA] 직렬화(Serializable)와 역직렬화  직렬화란?자바 직렬화는 객체를 바이트 스트림으로 변환하는 과정이다. 역직렬화는 그 반대로, 바이트 스트림을 객체로 복원하는 과정이다.주로 다음과 같은 상황에서 사용한다:객체를 파일로 저장할 때네트워크로 객체를 전송할 때캐시할 때클립보드에 복사할 때 기본 사용법직렬화 가능한 클래스 만들기public class User implements Serializable { private String name; private int age; private String email; // 생성자, getter, setter 생략} 객체 직렬화하기User user = new User("John", 30, "john@example.com");//.. 2024. 11. 3.
[JAVA] equals()와 hashCode() 메서드 [JAVA] equals()와 hashCode() 메서드  Java에서 equals()와 hashCode() 메서드는 객체의 동등성 비교와 해시 기반 컬렉션 사용에 매우 중요한 역할을 다. 이 두 메서드를 제대로 이해하고 구현하지 않으면 예상치 못한 버그가 발생할 수 있다.이번 글에서는 두 메서드의 올바른 구현 방법과 주의사항에 대해 알아보자.  equals() 메서드equals() 메서드의 기본 규칙equals() 메서드는 다음 다섯 가지 규칙을 만족해야 합니다:반사성: x.equals(x)는 항상 true대칭성: x.equals(y)가 true이면 y.equals(x)도 true추이성: x.equals(y)가 true이고 y.equals(z)가 true이면 x.equals(z)도 true일관성: x.. 2024. 11. 2.
[JAVA] Stream의 map과 flatMap 차이 [JAVA] Stream의 map과 flatMap 차이  Java Stream API를 사용하다 보면 자주 마주치게 되는 map()과 flatMap() 메서드.얼핏 비슷해 보이는 이 두 메서드의 차이점을 정확히 이해하기 위한 글입니다.. map() 메서드 이해하기map()은 스트림의 각 요소를 변환하여 새로운 요소로 매핑하는 중간 연산입니다. 1:1 매핑이라고 생각하면 됩니다. 기본적인 map() 사용 예제List names = Arrays.asList("john", "jane", "mike");// 모든 이름을 대문자로 변환List upperNames = names.stream() .map(String::toUpperCase) .collect(Collectors.toList());System.. 2024. 11. 1.
[JAVA] Java 컬렉션 프레임워크 성능 비교 (ArrayList vs LinkedList vs HashSet) Java 컬렉션 프레임워크 성능 비교(ArrayList vs LinkedList vs HashSet)  목차개요컬렉션별 특징성능 비교실제 성능 테스트사용 케이스별 권장사항결론  개요Java 개발을 하다 보면 상황에 따라 적절한 컬렉션을 선택해야 할 때가 있습니다. ArrayList, LinkedList, HashSet은 가장 흔히 사용되는 컬렉션들인데, 각각의 특성과 성능 차이를 정확히 이해하고 있다면 더 효율적인 프로그래밍이 가능합니다. 이 글에서는 각 컬렉션의 성능을 다양한 측면에서 비교 분석해보겠습니다.컬렉션별 특징ArrayList내부적으로 배열을 사용하여 데이터를 저장인덱스 기반의 빠른 접근 가능데이터 추가/삭제 시 배열 복사 발생 가능초기 용량을 지정할 수 있음List arrayList = ne.. 2024. 10. 24.