Java 9

[Java][Tutorial] 1-3. Learning the Java Language: Classes and Objects

The Java Tutorials have been written for JDK 8 3. Classes and ObjectsConstant값을 수정할 수 없는 필드입니다.final 키워드로 표기합니다. Access Control외부 클래스로부터 접근 제한 레벨을 지정하는 키워드입니다. Inner Classes클래스 내부에 선언된 클래스 입니다. 접근 제한 Static class : 밖에 있는 필드에 접근할 수 없습니다.Non-Static class : 밖에 있는 필드에 접근할 수 있습니다. Nested Classes내부 클래스를 가지고 있는 클래스 사용하는 이유오직 클래스 안에서만 사용되도록 논리적으로 묶는 유용한 방법입니다.캡슐화 효과를 얻을 수 있습니다. 직렬화중첩 클래스의 직렬화는 비권장됩니다.내..

Java 2024.01.14

[Java][Tutorial] 1-2. Learning the Java Language: Language Basics

The Java Tutorials have been written for JDK 8 1. Variables자료를 저장하기 위한 메모리 공간 입니다.타입에 따른 메모리가 할당됩니다. member variable항목Instance VariableClass Variable (Static Field)정의인스턴스마다 개별로 존재하는 변수클래스당 하나만 존재하는 변수생성 시기객체가 생성될 때클래스가 JVM에 로딩될 때생성 위치각각의 객체별로 Heap 메모리에 생성됨클래스 영역 또는 Heap의 메서드 영역에 생성됨 (클래스별)공유 여부공유되지 않음모든 인스턴스가 같은 변수를 공유함사용 예시개별 사용자 이름, 나이 등전역 설정값, 공통 카운터, 상수 등값 변경각 인스턴스가 자유롭게 변경 가능하나가 바꾸면 모두에게 반영..

Java 2024.01.14

[Java] Stream

1. Stream집계연산을 지원하는 일련의 데이터 소스 객체입니다.데이터를 저장하는 용도가 아닌 계산하는 용도로 사용됩니다.데이터의 변환과 계산을 위한 중간 연산과 최종 연산을 제공합니다.컬렉션과 다르게 내부적으로 연산이 수행됩니다.병렬화하여 다중 코어 아키텍처를 활용하는데 유용합니다. 2. 선언형 프로그래밍과 StreamStream 객체를 사용하여 데이터 처리를 섬세하게 표현할 수 있습니다.데이터 처리 패턴이 선언적인 연산인 SQL과 유사합니다.함수형 프로그래밍과 선언형 연산을 지원하여 구현을 감추고 기능을 명시적으로 표현할 수 있습니다. 3. 파이프라인 및 연산 체이닝Stream은 더 큰 파이프라인 체이닝을 형성하기 위해 자기 자신을 리턴합니다.연산의 효율성을 위한 게으른 연산을 수행하며, 최종 연산..

Java 2023.10.22

[Java][Tutorial] 3-2. Collections: Queue, Deque, Map

1. Queue InterfaceQueue는 처리를 위해 요소를 보관하는 컬렉션입니다.기본적인 Collection 연산 외에도 추가적인 삽입, 삭제, 검사 연산을 제공합니다. 기본 연산요소 추가add(e)큐의 용량 제한을 위반할 경우 IllegalStateException을 던집니다.offer(e)용량 제한이 있는 큐에서만 사용하기 위한 것요소를 삽입하지 못했을 때 false를 반환합니다.  요소 반환remove(), poll()큐의 앞쪽 요소를 제거하고 반환합니다. 요소 확인element(), peek()요소를 제거하지 않습니다. 특징정렬대개 FIFO(First-In-First-Out) 방식으로 요소를 정렬우선순위 큐는 요소의 값을 기준으로 요소를 정렬합니다. LinkedListQueue를 구현하는 ..

Java 2023.10.15

[Java][Tutorial] 3-1. Collections: Collection, Set, List

1. Introduction 여러 오브젝트를 하나의 단위로 그룹화하는 컨테이너 What Is a Collections Framework? Collection을 표현하고 조작하기 위한 통합된 아키텍쳐입니다. Interface 컬렉션을 대표하는 추상 데이터 타입입니다. 다양한 구현체들을 같은 방식으로 처리할 공통의 규약을 정의할 수 있습니다. Implementations 컬렉션 인터페이스의 실제 구현입니다. 재사용 가능한 데이터 구조입니다. Algorithms 컬렉션 인터페이스를 구현한 객체의 메서드입니다. (검색, 정렬) 모든 컬렉션 구현체에서 가지고 있습니다. (다형성) Benefits of the Java Collections Framework 프로그래밍 노력 감소 유용한 데이터 구조와 알고리즘을 제공..

Java 2023.10.15

[Java][Tutorial] 2-1. Essential Java Classes: Exceptions

1. ExceptionsWhat Is an Exception?프로그램이 정상 흐름에서 벗어나 중단된 상황을 뜻합니다.Java는 예외적인 이벤트나 에러를 핸들링하기 위해 Exception 클래스를 사용합니다. Exception예외 상황에 대한 정보를 가집니다.Exception 인스턴스를 생성해서 JVM에게 전달합니다. Exception Handling메서드 내에서 에러가 발생 시, JVM으로부터 처리됩니다.call stack을 하나씩 내려가면서 처리될 catch 블록을 탐색합니다.call stack을 하나씩 내려가면서, 던져진 예외타입에 매칭되는 catch 블록을 순차적으로 탐색합니다.별도로 작성된 서브타입에 대한 예외처리 핸들러를 먼저 작성하여 처리되도록 해야 합니다.catch 블록을 찾지못하면 jvm..

Java 2023.10.15

[Java][Tutorial] 1-4. Learning the Java Language: Annotation

The Java Tutorials have been written for JDK 8 4. Annotation프로그램에 메타데이터 정보를 제공하는 주석입니다.코드에 직접적인 영향을 주지 않습니다. ElementTypepublic enum ElementType { TYPE, /** Class, interface, enum, or record declaration */ FIELD, /** Field declaration */ METHOD, /** Method declaration */ PARAMETER, /** Formal parameter declaration */ CONSTRUCTOR, /** Constructor declaration */ ..

Java 2023.10.15

[Java][Tutorial] 1-1. Learning the Java Language: Object-Oriented Programming Concepts

The Java Tutorials have been written for JDK 8 1. Object-Oriented Programming ConceptsWhat Is an Object?모델이 가진 상태와 행동의 번들입니다.현실세계의 물체를 소프트웨어 세계의 물체로 모델링해서 사용합니다. state객체가 가지고 있는 내부 상태값을 의미합니다. method객체의 행동을 메서드라 부릅니다.오브젝트 간 커뮤니케이션 매커니즘다른 오브젝트로부터 노출시키므로써 인터렉션이 가능합니다.캡슐화내부 상태의 조작을 기반으로 동작합니다.바깥에서 직접적으로 내부의 state를 접근하지 못하게 하는 기능묵시적 형변환결과를 받을 때파라미터로 전달할 때variable arguments (...)동일 타입의 인자가 몇 개 들어올 지 ..

Java 2023.10.15