본문 바로가기

Java Tutorials30

#23 Concurrency 1 자바 공식 Concurrency 튜토리얼 Thread스레드(Thread)란 프로세스 내에서 실행되는 독립적인 실행 흐름을 말합니다. 프로세스는 운영체제로부터 자원을 할당받아 실행되는 프로그램의 인스턴스를 의미하며, 각각의 프로세스는 하나 이상의 스레드를 가질 수 있습니다.스레드는 프로세스 내에서 코드 실행의 기본 단위로, 동시에 여러 작업을 수행할 수 있습니다. 프로세스는 자신만의 주소 공간, 파일 핸들, 자원 등을 가지고 있지만, 스레드는 프로세스의 자원을 공유하여 실행됩니다. 따라서 스레드는 프로세스 내에서 동시에 여러 작업을 처리하고 서로 협력하여 작업을 완료할 수 있습니다.스레드는 동시성 (Concurrency)을 제공하여 작업의 처리 속도를 향상시키고, 병렬성 (Parallelism)을 통해 여.. 2024. 8. 5.
#22 Lesson: Exceptions [튜토리얼]자바 프로그래밍 언어는 오류 및 기타 예외적인 이벤트를 처리하기 위해 예외를 사용합니다. 이 레슨에서는 예외를 언제 그리고 어떻게 사용하는지 설명합니다. What Is an Exception?예외(Exception)는 정상적인 명령 흐름을 방해하는 프로그램 실행 중에 발생하는 이벤트입니다.The Catch or Specify Requirement이 섹션에서는 예외를 catch하고 처리하는 방법을 다룹니다. 이 논의는 try, catch, finally 블록뿐만 아니라 chain exception와 logging을 포함합니다.How to Throw Exceptions이 섹션에서는 throw 스테이트먼트와 Throwable 클래스 및 그 하위 클래스를 다룹니다.The try-with-resourc.. 2024. 8. 5.
#21 Lesson: Annotations 가장 간단한 형태의 어노테이션은 메타데이터의 한 형태로, 프로그램 자체의 일부가 아닌 프로그램에 대한 데이터를 제공합니다. 어노테이션은 어노테이션이 달린 코드의 작동에 직접적인 영향을 미치지 않습니다.어노테이션은 여러 용도로 사용됩니다. 그 중 몇 가지는 다음과 같습니다: 컴파일러를 위한 정보 제공 — 어노테이션은 컴파일러가 오류를 감지하거나 경고를 무시하도록 사용할 수 있습니다.컴파일 시점 및 배포 시점 처리 — 소프트웨어 도구는 어노테이션 정보를 처리하여 코드, XML 파일 등을 생성할 수 있습니다.런타임 처리 — 일부 어노테이션은 런타임에 검토할 수 있습니다.이 강의는 어노테이션이 사용될 수 있는 위치, 어노테이션 적용 방법, Java Platform, Standard Edition (Java SE.. 2024. 8. 2.
#20 Lesson: Packages 이 레슨에서는 클래스와 인터페이스를 패키지로 묶는 방법, 패키지에 있는 클래스를 사용하는 방법, 컴파일러가 소스 파일을 찾을 수 있도록 파일 시스템을 정렬하는 방법을 설명합니다. Creating and Using Packages타입을 더 쉽게 찾고 사용할 수 있도록 하고, 이름 충돌을 방지하고, 액세스를 제어하기 위해 프로그래머는 관련 타입 그룹을 패키지로 묶습니다.정의: 패키지는 관련된 타입을 그룹화하여 접근 보호와 이름 공간 관리를 제공하는 것입니다. 여기서 타입은 클래스, 인터페이스, 열거형, 어노테이션 타입을 의미합니다. 열거형과 어노테이션 타입은 각각 클래스와 인터페이스의 특수한 종류이므로, 이 레슨에서는 타입을 단순히 클래스와 인터페이스로 언급하는 경우가 많습니다. Java 플랫폼의 일부인 타.. 2024. 8. 2.
#19 Lesson: Generics 4 Type Erasure제네릭은 컴파일 타임에 더 엄격한 타입 체크를 제공하고 제네릭 프로그래밍을 지원하기 위해 Java 언어에 도입되었습니다. 제네릭을 구현하기 위해 Java 컴파일러는 타입 소거(Type Erasure)를 다음에 적용합니다:제네릭 타입에 제한[bounds] 있다면 제한 타입으로, 만약 타입 파라미터가 제한이 없다면 Object로 대체합니다. 따라서 생성된 바이트코드는 일반 클래스, 인터페이스, 메서드만을 포함합니다.타입 안전을 유지하기 위해 필요한 경우 타입 캐스트를 삽입하십시오.확장된 제네릭 타입에서 다형성을 유지하기 위해 브리지 메서드를 생성합니다.타입 소거는 파라미터화된 타입에 대해 새 클래스가 생성되지 않도록 합니다. 결과적으로 제네릭은 런타임 오버헤드를 발생시키지 않습니다.파라.. 2024. 8. 1.
#18 Lesson: Generics 3 Wildcards일반 코드에서 와일드카드라고 하는 물음표(?)는 알 수 없는 타입을 나타냅니다. 와일드카드는 다양한 상황에서 사용할 수 있습니다. 때로는 리턴 타입으로 사용됩니다(좀 더 구체적으로 프로그래밍하는 것이 더 나은 방법이긴 하지만).와일드카드는 제네릭 메서드 호출, 제네릭 클래스 인스턴스 생성 또는 상위 타입에 대한 타입 아규먼트로 사용되지 않습니다.다음 섹션에서는상한 와일드카드(Upper Bounded Wildcards)하한 와일드카드(Lower Bounded Wildcards)와일드카드 캡처(Wildcards Capture)를 포함하여 와일드카드에 대해 자세히 설명합니다. Upper Bounded WildcardsUpper Bounded Wildcards를 사용하면 변수에 대한 제한을 완화.. 2024. 7. 29.