자바에서 String은 가장 많이 사용하는 타입 중 하나이다. 단순히 문자열 타입이라고 생각하기 쉽지만 사실 String은 Java 언어 전체에서 특별하게 취급되는 객체이다. primitive 타입은 아니지만 일반 객체처럼 동작하지도 않는다. 내부적으로 별도의 관리 전략을 가지고 있기 때문이다. Java의 String이 왜 특별한지 핵심 특징을 중심으로 살펴보자. 1) 불변성(Immutable) 첫 번째 특징은 String은 불변이라는 점이다
equals() 자바의 equals() 메서드는 두 객체가 논리적으로 같은지 비교할 때 사용하는 메서드이다. 이때 “같다”의 기준은 단순히 같은 메모리 주소를 가리키는지를 의미하는 것이 아닌 객체의 내부 값이 동일한지(논리적 동등성)를 의미한다. String a = new String("BlueCool"); String b = new String("BlueCool"); System.out.println(a == b); // fals
[기본 개념]얕은 복사(Shallow Copy): 객체의 1차 레벨 필드 값만 새로 담는다. 참조 타입 필드는 주소(참조)만 복사한다. 깊은 복사(Deep Copy): 중첩 객체까지 새 인스턴스를 만들어 전체 그래프를 복제한다. 결과적으로 얕은 복사는 내부 참조가 공유되고 깊은 복사는 공유되지 않는다. 예를 들어 아래와 같은 도메인이 있을 때 class Address { private String city; public Address(S
Stream API란?Java 8에서 도입된 Stream API는 데이터 처리(필터링, 변환, 집계 등)를 함수형 스타일로 작성할 수 있도록 돕는 도구이다. 기존의 for 루프 기반 처리보다 간결하고 가독성 높은 코드를 작성할 수 있게 도와준다. *Stream 동작 방식Stream은 크게 중간 연산과 최종 연산으로 나뉜다. 중간 연산 (Intermediate Operation)데이터를 변환, 필터링, 정렬하는 과정을 담당하며 Stream 파
자바에서 자료형(Data Type)은 변수가 어떤 종류의 데이터를 저장할 수 있는지를 정의한다. 크게 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있다. 1. 기본형 (Primitive Type)기본형은 값 자체를 저장하는 타입이다. 총 8가지가 존재하며 메모리에 바로 값이 저장된다. 각 타입별 메모리 크기와 기본값은 아래와 같다. 정수형byte - 1 byte - 0short - 2 byte - 0i