High Level Programming Language/Learning the Java Language(39)
-
Lesson: Generics[Type Inference, Target Types]
Type Inference타입 유추는 메서드 호출에 적용할 수 있는 타입 아규먼트(또는 아규먼트)를 결정하기 위해 해당 메소드 호출 및 해당 메서드 선언을 살펴보는 Java 컴파일러의 기능입니다. 추론 알고리즘은 타입 아규먼트의 타입과 (가능한 경우)리턴되는 타입을 결정합니다. 마지막으로 추론 알고리즘은 모든 아규먼트와 함께 작동하는 특정 타입을 찾으려고 시도합니다. 이 마지막 요점을 설명하기 위해 다음 예제에서 타입 추론은 pick 메서드에 전달되는 두 번째 아규먼트가 Serializable 유형임을 확인합니다.static T pick(T a1, T a2) { return a2; }Serializable s = pick("d", new ArrayList()); Type Inference and Gen..
2023.06.17 -
Lesson: Generics
Why Use Generics?간단히 말해서, 제네릭은 클래스, 인터페이스 및 메서드를 정의할 때 타입(클래스 및 인터페이스)을 파라미터로 사용할 수 있습니다. 메서드 선언에 사용되는 더 친숙한 formal 파라미터와 마찬가지로, 타입 파라미터는 다른 입력으로 동일한 코드를 재사용할 수 있는 방법을 제공합니다. 차이점은 formal 파라미터에 대한 입력은 값인 반면, 타입 파라미터에 대한 입력은 타입이라는 것입니다. 제네릭을 사용하는 코드는 제네릭이 아닌 코드에 비해 많은 이점이 있습니다:컴파일 시간에 더 강력한 타입 검사. 자바 컴파일러는 제너릭 코드에 강력한 타입 검사를 적용하고 코드가 타입 안전을 위반하는 경우 오류를 발행합니다. 컴파일 타임 오류를 수정하는 것은 찾기 어려울 수 있는 런타임 오류를..
2023.06.17 -
자바 예외 처리(feat.Linux Exception Handling)
보호되어 있는 글입니다.
2023.06.07 -
Lesson: Annotations
가장 간단한 형태의 어노테이션은 메타데이터의 한 형태로, 프로그램 자체의 일부가 아닌 프로그램에 대한 데이터를 제공합니다. 어노테이션은 어노테이션이 달린 코드의 작동에 직접적인 영향을 미치지 않습니다.어노테이션은 여러 용도로 사용됩니다. 그 중 몇 가지는 다음과 같습니다:컴파일러를 위한 정보 제공 — 어노테이션은 컴파일러가 오류를 감지하거나 경고를 무시하도록 사용할 수 있습니다.컴파일 시점 및 배포 시점 처리 — 소프트웨어 도구는 어노테이션 정보를 처리하여 코드, XML 파일 등을 생성할 수 있습니다.런타임 처리 — 일부 어노테이션은 런타임에 검토할 수 있습니다.이 강의는 어노테이션이 사용될 수 있는 위치, 어노테이션 적용 방법, Java Platform, Standard Edition (Java SE ..
2023.06.06 -
사실상 final(effective final)이란?
“사실상 final인 바깥쪽 블록의 로컬 변수 및 파라미터”란 자바 람다와 익명 클래스에서 매우 중요한 개념입니다.이 개념을 완전히 이해하려면 ‘final’과 ‘effectively final(사실상 final)’의 차이부터 설명드리는 게 핵심입니다.🧠 사실상 final(effective final)이란?✅ 정의사실상 final(effective final)이란,"코드에서 단 한 번만 값이 할당되고, 이후 변경되지 않는 지역 변수나 파라미터를 말합니다."즉, 명시적으로 final 키워드를 붙이지 않아도 실제로는 변경되지 않는 변수입니다.🔍 예제 1 – final과 사실상 final 변수public void test() { final int a = 10; // 명시적으로 fin..
2023.06.06 -
String Class
보호되어 있는 글입니다.
2023.06.06