High Level Programming Language(74)
-
Class Loader
Class Loader클래스 로더는 JVM에서 클래스 파일을 로드하고, 해당 클래스를 메모리에 정의하는 역할을 담당합니다.자바에서는 클래스 로더(Class Loader)가 클래스당 하나씩 존재합니다. 자바에서 클래스 로더(Class Loader)가 클래스당 하나씩 존재하는 이유에는 몇 가지 이유가 있습니다. 이러한 클래스당 하나의 클래스 로더 구조는 자바 언어의 동작 원리와 안정성을 보장하는 데 도움이 됩니다.네임스페이스 분리(Namespace Isolation): 각 클래스 로더는 독립된 네임스페이스를 가지고 클래스를 로드합니다. 클래스 로더마다 고유한 클래스 패스를 가지며, 같은 이름의 클래스라도 서로 다른 클래스 로더에 의해 로드될 수 있습니다. 이를 통해 서로 다른 버전의 동일한 클래스가 충돌하지..
2023.05.17 -
sealed interface
sealed interface는 Java 15에서 도입된 기능으로, 인터페이스가 특정 클래스들만을 상속하거나 구현할 수 있도록 제한하는 기능을 제공합니다. 이를 통해 인터페이스를 상속하거나 구현할 수 있는 클래스들을 명시적으로 지정함으로써, 보다 강력한 캡슐화와 제어를 가능하게 합니다.주요 특징:제한된 상속:sealed로 선언된 인터페이스는 permits 키워드를 사용하여 상속이나 구현할 수 있는 클래스 또는 인터페이스를 명시합니다.sealed interface를 구현할 수 있는 클래스들은 반드시 같은 모듈 또는 패키지에 있어야 하며, 명시적으로 상속을 허용한 클래스만 가능합니다.하위 클래스의 종류:sealed interface를 구현하는 클래스는 세 가지로 구분될 수 있습니다:final: 더 이상 다른..
2023.05.08 -
Structuring method calls
보호되어 있는 글입니다.
2023.05.02 -
type-safe proxy object
보호되어 있는 글입니다.
2023.05.02 -
unqualified name
"단순 이름" (unqualified name)이라는 용어는 Java에서 주로 클래스, 인터페이스, 또는 메서드의 이름을 특정한 컨텍스트 없이 단독으로 지칭할 때 사용됩니다.자세한 설명:단순 이름(Unqualified Name):정의: 단순 이름은 패키지나 클래스의 경로 정보를 포함하지 않은, 그 자체로만 존재하는 이름을 말합니다. 예를 들어, java.util.List 클래스에서 List는 단순 이름입니다.예시:클래스 java.util.ArrayList에서 ArrayList가 단순 이름입니다.클래스 com.example.MyClass에서 MyClass가 단순 이름입니다.완전한 이름(Qualified Name:정식 이름):정의: 완전한 이름은 클래스나 인터페이스의 패키지 경로를 포함한 전체 이름을 의미합..
2023.05.01 -
Java Dynamic Proxy Classes
튜토리얼Introduction다이나믹 프록시 클래스는 런타임에, 지정된 인터페이스 목록을 구현하는 클래스입니다. 이러한 클래스의 인스턴스를 통해 인터페이스의 메서드를 호출하면 해당 호출이 인코딩되어 다른 객체로 전달됩니다.[structuring method calls]이 객체는 일관된 인터페이스를 통해 호출을 처리하게 됩니다. 따라서 다이나믹 프록시 클래스는 컴파일 타임 도구를 사용하지 않고도 인터페이스 목록에 대한 타입 안전한 프록시 객체를 생성하는 데 사용할 수 있습니다.[type-safe proxy object]다이나믹 프록시 클래스의 인스턴스에서 메서드가 호출되면, 이 호출은 해당 인스턴스의 Invocation Handler에 있는 단일 메서드[invoke]로 전달되며, 호출된 메서드를 식별하는 ..
2023.04.28