본문 바로가기

Java Study33

Type Erasure(타입 소거) Type Erasure(타입 소거)Java의 제네릭이 런타임 시 타입 정보를 유지하지 않고 컴파일 타임에만 사용되는 메커니즘을 말합니다. 이는 제네릭의 타입 정보가 컴파일 시점에서 제거되고, 런타임에는 원래의 비제네릭 타입으로 변환되는 것을 의미합니다. 타입 소거 덕분에 제네릭이 자바 1.5 이전의 코드와 호환성을 유지할 수 있습니다.타입 소거(Type Erasure)는 Java에서 제너릭을 도입할 때, 기존의 코드와의 하위 호환성(Backward Compatibility)을 유지하기 위해 채택된 메커니즘입니다. 자바 5 때 도입 됐으므로 그전 자바 버전에서는 제너릭을 인식 못하기 때문에 타입 소거 타입 소거의 작동 방식제네릭 타입 정보 제거: 컴파일러는 제네릭 타입 정보를 제거하고 원래의 비제네릭 타입.. 2024. 7. 18.
@ 어노테이션 (Annotation) 어노테이션(Annotation)은 Java에서 코드에 메타데이터를 추가하는 방법입니다. 어노테이션은 컴파일러에게 지시를 내리거나, 런타임 시 특정 행동을 수행하도록 할 수 있습니다. 어노테이션은 클래스, 메소드, 필드, 매개변수 등에 붙여서 사용합니다.  어노테이션의 정의어노테이션은 @ 기호로 시작하며, 다음과 같은 형태로 정의됩니다.// 어노테이션 정의import java.lang.annotation.*;@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface MyAnnotation { String value(); int number() default 0;} @Retention: 어노테이션의 유지 정책을 정.. 2024. 7. 18.
와일드카드의 종류 (insert 되는지 안되는지 is-a관계) 무제한 와일드카드(Unbounded Wildcards) 무제한 와일드카드(Unbounded Wildcard)는 형식을 사용하여 특정 타입에 구애받지 않는 모든 참조 타입(기본타입제외란 뜻)을 나타냅니다. 이는 주로 제네릭 메서드나 클래스에서 타입을 일반화하여 사용할 때 유용합니다. 무제한 와일드카드는 컬렉션에서 읽기 작업은 가능하지만, 타입 안전성을 보장할 수 없기 때문에 삽입 작업은 제한됩니다.  import java.util.ArrayList;import java.util.List;public class UnboundedWildcardExample { // 무제한 와일드카드를 사용하는 메서드 public static void printList(List list) { for (.. 2024. 7. 17.
자바 ArrayList 특징 & 사용법 정리 ArrayList는 자바 컬렉션 프레임워크에서 가장 많이 사용되는 클래스 중 하나로, 동적으로 크기를 조절할 수 있는 배열 기반의 리스트를 구현합니다. ArrayList는 List 인터페이스를 구현하며, 배열의 장점인 인덱스를 통한 빠른 접근과 리스트의 장점인 크기 조절의 유연성을 결합한 자료구조입니다. ArrayList의 주요 특징동적 크기 조절: ArrayList는 요소를 추가하거나 제거할 때 자동으로 크기를 조절합니다.인덱스를 통한 빠른 접근: 배열과 마찬가지로 인덱스를 통해 요소에 빠르게 접근할 수 있습니다.순차적인 요소 저장: 요소는 순차적으로 저장되며, 요소의 순서는 유지됩니다.제네릭 지원: ArrayList는 제네릭 클래스로, 특정 타입의 요소만 저장할 수 있습니다. ArrayList의 주요.. 2024. 7. 16.
동일성(Identity)과 동등성(Equality) 자바에서 동일성(Identity)과 동등성(Equality)은 객체를 비교할 때 중요한 두 가지 개념입니다. 이 두 개념은 서로 다르며, 올바르게 이해하고 사용하는 것이 중요합니다. 동일성 (Identity)동일성은 두 객체가 동일한 메모리 위치를 참조하고 있는지를 의미합니다. 즉, 동일한 객체인지 여부를 확인합니다. 자바에서 동일성 비교는 == 연산자를 사용합니다. ( 참조 동일성(Reference Equality) )public class IdentityExample { public static void main(String[] args) { // 두 객체 생성 String str1 = new String("hello"); String str2 = new S.. 2024. 7. 16.
캐시(Cache)와 캐싱(Caching) 캐시와 캐싱은 컴퓨터 과학과 소프트웨어 개발에서 중요한 개념입니다. 캐시는 데이터 또는 계산 결과를 임시로 저장해 두었다가 필요할 때 빠르게 접근할 수 있도록 하는 메모리 공간이며, 캐싱은 이러한 캐시를 사용하는 방법을 의미합니다. 이 개념들은 시스템 성능을 최적화하고 효율성을 높이기 위해 널리 사용됩니다. 캐시(Cache)캐시는 데이터 또는 계산 결과를 임시로 저장해 두는 고속 메모리입니다. 주로 CPU와 주 메모리 간의 속도 차이를 줄이기 위해 사용되며, 웹 브라우저, 데이터베이스, 운영 체제 등 다양한 시스템에서 활용됩니다.캐시의 특징고속 접근: 캐시는 고속 메모리로, 데이터를 빠르게 읽고 쓸 수 있습니다.작은 크기: 캐시는 주로 용량이 작지만, 매우 빠른 속도를 제공합니다.임시 저장: 캐시는 자주.. 2024. 7. 16.