Java/Collections & Generics(4)
-
[Generics] 제네릭스란?
제네릭스(Generics)는 자바 5부터 도입된 기능으로, 클래스나 메소드의 인자로 사용되는 데이터 타입을 미리 지정하지 않고, 런타임 시에 인자로 전달되는 데이터 타입에 따라서 동적으로 결정되도록 하는 기능입니다. 제네릭스를 사용하면 다음과 같은 이점이 있습니다. 타입 안정성(Type Safety) 제네릭스를 사용하면 컴파일러가 타입을 검증할 수 있으므로, 타입 안정성이 보장됩니다. 이렇게 되면 런타임 시에 타입 불일치에 따른 오류가 발생할 가능성이 줄어듭니다. 코드 재사용성 제네릭스를 사용하면 타입에 관계없이 동일한 코드를 재사용할 수 있습니다. 코드 가독성 제네릭스를 사용하면 코드의 가독성이 좋아집니다. 타입이 미리 지정되어 있어서, 코드를 읽는 사람이 코드 작성자가 의도한 타입이 무엇인지 명확히 ..
2023.03.13 -
[Collections] Wrapper & AutoBoxing & UnBoxing
기존의 자바에서는 Object는 참조 타입이며, 기본형 타입의 값을 직접 저장할 수 없습니다. 그러나 자바 1.5이상부터 기본형 타입 값을 래퍼(wrapper) 클래스로 자동 변환해주는 오토박싱(autoboxing)이라는 기능을 제공합니다. 따라서 Object obj = 3;에서는 3이 int 타입의 기본형 값이지만, 오토박싱으로 인해 Integer 래퍼 클래스로 자동 변환되어 obj 변수에 할당됩니다. 이후 System.out.println(obj);에서 obj 변수의 값을 출력하면 자동으로 toString() 메소드가 호출되어 3이 출력됩니다. Wrapper 클래스는 기본형타입을 Boxing 해줄수 있는 기능이 있습니다. (Number 추상클래스) (기본형 타입보다는 Boxing 기능이 훨씬 많은 메..
2023.03.13 -
[Collections] 오브젝트란?
자바의 Object 클래스는 모든 클래스의 최상위 클래스로, 모든 객체는 이 클래스를 상속받습니다. 따라서 모든 자바 객체는 Object의 메소드와 멤버를 사용할 수 있습니다. Object 클래스는 자바에서 가장 기본적인 클래스이기 때문에, 다른 클래스가 상속받아서 사용하는 경우가 매우 많습니다. 예를 들어, String 클래스, Collection 인터페이스, Thread 클래스 등이 Object 클래스를 상속받아 사용하고 있습니다. Object는 모든 데이터의 부모클래스이기 때문에 다음처럼 Object로 만든 배열에는 어떠한 값들도 들어갈수 있습니다. (모든 객체를 묶을 수 있는 범용 자료형식)
2023.03.13 -
[Collections] 컬렉션이란?
자바의 컬렉션은 크게 List, Set, Map 인터페이스로 구성되어 있습니다. 각각의 인터페이스는 다양한 구현체를 가지고 있어서, 다양한 용도에 맞는 데이터를 처리할 수 있습니다. List : 순서가 있는 데이터의 집합으로, 중복을 허용합니다. ArrayList, LinkedList, Vector 등이 있습니다. Set : 순서가 없는 데이터의 집합으로, 중복을 허용하지 않습니다. HashSet, TreeSet 등이 있습니다. Map : 키와 값이 쌍으로 이루어진 데이터의 집합으로, 키는 중복을 허용하지 않고, 값은 중복을 허용합니다. HashMap, TreeMap 등이 있습니다. 또한, 자바 5부터는 제네릭스(Generics)를 지원하기 시작했기 때문에, 제네릭스를 활용한 타입 안전성을 보장하는 컬렉..
2023.03.13