Java

    애노테이션

    학습할 것 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 애노테이션이란? 애노테이션이란 주석의 한 형태로 데이터에 대한 데이터 즉, 메타 데이터를 나타냅니다. 기본적으로 자바에서 제공하는 7개의 애노테이션이 존재하며 그 종류는 다음과 같습니다. java.lang 패키지에서 제공하는 애노테이션 @Deprecated : 더이상 사용되지 않음 @Override : 재정의 된 메소드 @SuppressWarnings : 특정 컴파일러 경고를 억제 java.lang.annotation 에서 가져오는 애노테이션 (유저 애노테이션에 사용) @Retention : 애노테이션의 유지시점 @Documented : javadoc 으로 문서 생성 시 애노테이션의 설명 추가 ..

    Enum

    학습목표 enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet Enum 서로 관련이 있으면서 의미가 있는 상수들의 집합. 정의 방법. [접근 지시자] enum [Enum 타입]{ /* enum 변수목록 */ } /* 예시 */ public enum Months{ January, February, March, April, May, June, July, August, September, October, November, December; } 자바에서의 Enum은 기본적으로 클래스입니다. 클래스의 특징인 상속은 불가능하지만 메소드와 필드, 생성자를 사용하는게 가능합니다. Enum을 배우면서 좀 신기하다 싶었던 것 들을 되짚어봅시다! ..

    자바의 멀티쓰레드 프로그래밍

    학습목표 Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Thread Thread란 프로세스 내에서 실행되는 흐름의 단위를 의미하며, MultiThread란 둘 이상의 스레드를 동시에 실행하는 방식을 의미합니다. Thread를 생성한다는 것은 메인스레드와 동시에 돌아가는 작업을 생성한다는 의미를 가집니다. MultiThread는 작업을 잘게 나눈다음 번갈아가면서 실행하는 것을 의미합니다. 새로운 작업 Thread를 만들기 위해서는 해당 스레드에서 실행되어야하는 코드를 제공해야합니다. Runnable 인터페이스의 객체를 Thread 생성자의 파라미터로 사용하는 방법 Thread 클래스를 상속하여 실행코드를 작성하는 방법 2번 방법의 경우, 클래..

    예외 처리

    목표 자바의 예외처리에 대해 학습하기 학습할 것 (필수) 자바에서의 예외처리방법(try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바에서의 예외처리 자바에서의 예외처리는 일반적으로 try-catch-finally 블록을 이용하여 처리합니다. try{ // 예외가 일어날 가능성이 있어서 검사해야하는 코드 }catch(IOException e){ // 특정 예외의 발생 시 처리해당하는 예외를 처리하는 블록 }catch(RuntimeException e){ // 특정 예외의 발생 시 처리해당하는 예외를 처리하는 블록 }finally{ /..

    인터페이스

    목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 인터페이스란, 일반적으로 상수와 추상메소드로만 이루어진 클래스를 의미합니다. 인터페이스의 정의 상수 : public static final 로 선언된 변수 추상메소드 : abstract 로 선언된 메소드. 구현부가 없다. public interface sample{ public static final int value = 10; public abstract void ..

    패키지

    목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 패키지란, 클래스와 인터페이스의 집합을 의미하며 서로 관련된 클래스등의 파일들을 그룹화하는 역할을 맡고 있습니다. 대표적인 패키지로는 java.lang 패키지가 존재합니다. 해당 패키지 밑에서는 String, Integer, Long 등등의 클래스들이 합니다. 해당 패키지내의 클래스들은 그 자체로 사용이 가능하며, 패키지 명을 포함하여 사용할 수도 있습니다. Integer integer = 10; java.lang.Integer integer1 = 10; 패키지의 이름을 지정할 때, Java나 int 와 같은 예약어가 ..

    상속

    목표 자바의 상속에 대해 학습하기 학습목표 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 ( Dynamic Method Dispatch ) 추상 클래스 final 키워드 Object 클래스 상속 class SubClass extends SuperClass{ /*...*/ } 자바에서의 상속은 extends키워드와 implements를 통하여 이루어집니다. 슈퍼 클래스에 작성된 내용을 서브클래스에서도 필요로 할때 주로 사용됩니다. public class Parent { public int Parent_int; public String Parent_String; Parent(int Parent_int, String Parent_String){ this.Parent_int = ..

    클래스

    목표 자바의 Class에 대해 학습하시오. 학습할 것 클래스 정의하는 방법 객체 만드는 방법 ( new 키워드 이해하기 ) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 과제 int값을 가지고 있는 이진트리를 나타내는 Node 클래스 정의하기. int value, Node left, right를 가지고 있어야한다. Binary Tree ( 이진 트리 ) 라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node) 와 dfs(Node node) 메소드 구현하기 DFS는 왼쪽, 루트, 오른쪽 순회 클래스 정의방법 [접근 제한자] class [클래스명]{ //필드, 생성자, 메소드 정의 } 클래스란 자바에서의 모든 작업이 일어나는 공간을 의미합니다. 클래스 내부는 필..

    제어문

    목표 자바가 제공하는 제어문 학습하기. 학습목표 선택문 반복문 과제 JUnit5로 테스트코드 작성하는 방법 익히기 live-study 대시보드 만드는 코드 작성하기 LinkedList 구현하기 stack 구현하기 ListNode로 stack 구현하기 Queue 구현하기 선택문 여러개의 조건 중에서 부합하는 조건의 구문이 실행 if-then & if-then-else if(/*조건*/){ /* 조건이 True 일 경우 수행될 코드 */ } 조건은 반드시 boolean 타입의 반환을 해야하며, 해당 조건의 반환값이 True일 경우 블록 내부의 코드가 실행되는 방식으로 진행됩니다. if(/*조건*/){ /* 조건이 True 일 경우 수행될 코드 */ }else if(/*조건 2*/{ /* 조건 2가 True일..

    연산자

    목표 자바가 제공하는 다양한 연산자 학습하기 학습목표 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선순위 (optional) Java 13. switch 연산자 연산자 우선순위 연산자 표현 접미사 expr++ expr-- 단항 ++expr --expr +expr -expr ~ ! 곱셈/나눗셈/나머지 * / % 더하기 / 빼기 + - 시프트 > >>> 관계 = instanceof 평등 == != 비트 AND & 비트 XOR ^ 비트 OR | 논리적 AND && 논리적 OR || 삼항 ? : 대입 =, +=, -=, *=, /=, %=, &=, ^=, |=, =, >>>= 대입, 산술, 그리고..