본문 바로가기

Java

(16)
[Java] 동등성 (equals(), hashCode()) 자바에서 동등성(equality)을 보장하는 equals()와 hashCode()가 존재합니다.이 두 메소드는 Object 클래스에서 기본적으로 제공을 하며 객체의 동등성 비교를 할 수 있습니다. equals()두 객체의 참조 동등성(reference equality)을 검사합니다.두 객체가 같은 메모리 주소를 가리키고 있는지 확인을 하며 같다면 true 다르다면 false를 반환하게 됩니다.Object obj1 = new Object();Object obj2 = new Object();System.out.println(obj.equals(obj2)); // false 사실 저는 실제 값이 같아야 equals가 true 일 줄 알았지만 실제로는 같은 주소인지를 확인하는 것이였습니다.이유는 equals를 ..
[Java] String, StringBuffer, StringBuilder 차이점 StringString은 자바에서 가장 기본적인 문자열 클래스이며, 불변(immutable)의 특징을 가지고 있습니다.불변이란 한 번 생성된 문자열 객체의 값이 변경되지 않음을 의미합니다.String message = "hello";message += " world";System.out.println(message); // 출력: hello world 위 코드에서 문자열이 변한 것처럼 보이지만, 실제로는 새로운 문자열 객체가 생성된 것입니다.즉, "hello"와 "hello world"라는 두 개의 객체가 메모리에 존재합니다.문자열 풀(String Pool):문자열 리터럴로 생성된 String 객체는 JVM의 문자열 풀에 저장됩니다. 동일한 리터럴이 재사용되지만,문자열 조작(예: +=)은 새로운 객체를 ..
[Java] 인스턴스 내부 클래스 인스턴스 내부 클래스(Instance Inner Class)란?인스턴스 내부 클래스는 외부 클래스의 인스턴스에 속하는 클래스를 의미합니다. 즉, 인스턴스 내부 클래스는 외부 클래스의 객체를 생성해야만 사용할 수 있는 클래스입니다.예시 코드class Outer { // 인스턴스 변수 private final int number = 10; // 인스턴스 내부 클래스 class Inner { void display() { // 외부 클래스의 인스턴스 변수에 접근 System.out.println("Outer class number: " + number); } } // 인스턴스 메소드 void createInn..
[Java] for-each 루프 for-each란?for-each는 JDK 1.5 버전부터 추가된 반복문으로, 배열뿐만 아니라 Collection 인터페이스를 구현한 모든 자료구조에 사용할 수 있는 반복문입니다. 배열과 리스트뿐만 아니라 Set, Map과 같은 컬렉션에서도 간단히 사용 가능합니다.예제 코드import java.util.ArrayList;public class Main { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; // 일반적인 for문 for (int i = 0; i list = new ArrayList(); list.add("apple"); list.add("banan..
[Java] 리스트 인터페이스 구현 자료구조는 프로그래밍에서 데이터를 효율적으로 저장하고 관리하기 위한 중요한 개념입니다. 그중에서도 리스트(List)는 가장 기본적이면서도 다양한 활용성을 가진 자료구조입니다. 이번 글에서는 리스트 인터페이스를 설계하겠습니다.  1. 리스트란?리스트(List)는 자료를 순서대로 저장하는 선형 자료구조입니다.선형 구조란 데이터가 논리적 혹은 물리적으로 순서대로 연결되어 있다는 것을 의미합니다.리스트는 데이터를 추가하거나 삭제, 조회하기 쉽도록 설계된 자료구조로, 순차적 데이터 처리에 적합합니다.리스트의 특징데이터의 앞/뒤 순서를 유지합니다.물리적이거나 논리적으로 선형 구조를 갖습니다.다양한 언어에서 기본적으로 제공되며, 배열(Array)과 비슷하지만 기능이 더 확장되었습니다. 2. 리스트를 구현하는 자료구조..
[Java] 1급 커넥션 1급 커넥션이란?1급 컬렉션 (First-class Collection)은 소프트웨어 설계 원칙 중 하나로, 특정 도메인 객체를 관리할 때 컬렉션을 포장(wrapper)한 클래스를 사용하는 것을 의미합니다. 객체지향 설계의 응집도와 책임의 단일화(Single Responsibility Principle)를 강화하는 데 도움이 됩니다.  1급 컬렉션의 특징컬렉션 외에 다른 멤버 변수를 가지지 않음1급 컬렉션 클래스는 내부에 단일 컬렉션(리스트, 셋 등)만을 멤버 변수로 가지며, 불필요한 다른 필드를 포함하지 않습니다.불변 객체(Immutable)컬렉션 내부의 데이터는 외부에서 수정할 수 없도록 보장합니다. 따라서 읽기 전용으로 제공하며, 추가/삭제 작업은 새로운 객체를 반환합니다.컬렉션과 관련된 로직을 캡..
[Java] Arrays, Array 메소드 정리 Arrays.sort(T[] a)반환 타입: void설명: 배열의 요소를 오름차순으로 정렬합니다.인자:a - 정렬할 배열 (T[]).Arrays.equals(T[] a, T[] b)반환 타입: boolean설명: 두 배열의 요소를 비교합니다. 두 배열의 요소 값과 순서가 모두 같으면 true, 그렇지 않으면 false를 반환합니다.인자:a - 비교할 첫 번째 배열 (T[]).b - 비교할 두 번째 배열 (T[]).Arrays.copyOf(T[] original, int newLength)반환 타입: T[]설명: 원본 배열의 처음부터 newLength까지 복사하여 새로운 배열을 반환합니다. 원본 배열의 길이보다 큰 길이를 요청하면 추가된 부분은 기본값으로 채워집니다.인자:original - 복사할 원본 배..
[Java] String 메소드 정리 charAt(int index)반환 타입: char설명: 문자열에서 지정된 인덱스의 문자를 반환합니다. 인덱스는 0부터 시작합니다.인자: index - 가져올 문자의 인덱스 (int).toUpperCase()반환 타입: String설명: 문자열의 모든 문자를 대문자로 변환하여 반환합니다.인자: 없음.toLowerCase()반환 타입: String설명: 문자열의 모든 문자를 소문자로 변환하여 반환합니다.인자: 없음.String.join(CharSequence delimiter, CharSequence... elements)반환 타입: String설명: 지정된 구분자를 사용하여 주어진 문자열 배열을 하나의 문자열로 연결합니다.인자:delimiter - 배열 요소 사이에 삽입할 구분자 (CharSequence..