JAVA

    [12주차] 자바스터디 - 애노테이션

    애노테이션 정의하는 방법 Annotation 이란? 자바 개발을 하면서 다들 @Overrive 같은 표시들을 봐왔다. 이것이 바로 애노테이션인데 이 애노테이션은 JEE 5부터 추가된 요소이다. 애노테이션을 통해 데이터의 유효성 검사 등 다양한 목적으로 쓰이고 있지만, 메타 데이터의 비중이 가장 크다고 한다. 여기서 메타데이터는 데이터를 설명하기 위한 데이터를 말한다. 애노테이션 정의하는 방법 애노테이션은 보기와 같이 @키워드 를 통해 정의하고 사용할 수 있다. java에서 제공하는 애노테이션 @Override 선언 된 메소드가 오버라이드 되었음을 나타낸다. 상위 클래스에서 메소드를 찾을 수 없을 경우 에러를 발생시킨다. 만약 해당 애노테이션을 사용하지 않는다면 오버라이드 되었음을 컴파일러는 알 수 없게 ..

    [11주차] 자바스터디 - Enum

    목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enum 정의하는 방법 JDK 1.5 버전 이전에는 자바에서 열거체를 사용할 수 없었지만 JDK 1.5 버전 이후부터는 열거체를 정의한 Enum 클래스를 사용할 수 있게 되었습니다. 자바의 열거체는 열거체를 비교할 때 타입까지도 체크하고, 상숫값이 재정의 되더라도 컴파일 할 필요가 없다는 장점을 가지고 있습니다. 자바에서 열거체를 정의하는 방법은 enum 키워드를 사용하는 방법입니다. enum 열거체명 { 상수1, 상수2, ... 상수N; } enum School{ CLASS1, CLASS2, ... CLASSN; }..

    [10주차] 자바스터디 - 멀티쓰레드

    목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Thread 클래스와 Runnable 인터페이스 스레드에 대해 이해하기 위해서는 우선 프로세스라는 개념에 대해 알 필요가 있다. 우선 개념 정리를 해보자 프로세스(process) 프로세스는 실행중인 프로그램을 말하는 것으로, OS의 메모리를 할당받아 실행 중인 것을 의미한다. 프로세스는 데이터와 메모리 따위의 자원과 스레드로 구성된다. 스레드(thread) 스레드는 프로세스에서 작업을 수행하는 실체를 말한다. 모든 프로세스 안에는 한개 이상의 스레드가 존재한다. 이러한 스레드를 구현하는 방법은 스레드 클래스(Thread C..

    [9주차] 자바스터디 - 예외 처리

    목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 예외 처리 방법 자바에서 예외처리를 하기 위해서는 try, catch, finally 문을 사용한다. try{ 예외가 발생할 수 있는 코드 } catch(Exception e1){ e1 예외가 발생할 경우 코드 } catch(Exception e2){ e2 예외가 발생할 경우 코드 } finally{ 예외 ..

    [8주차] 자바스터디 - 인터페이스

    목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법 인터페이스 정의 하위 클래스가 여러 상위 클래스를 상속 받을 수 있다면 더 다양한 동작을 구현할 수 있다. 하지만 클래스를 이용해 다중 상속을 하게 되면 여러가지 문제점이 생겨나 자바에서는 클래스를 이용한 다중상속은 지원하지 않는다. 이런 다중 상속의 이점을 이용하기 위해 자바에서 인터페이스를 통해 다중상속을 지원하고 있고, 이러한 인터페이스는 클래스를..

    [7주차] 자바스터디 - 패키지

    목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 pakage? 자바에서 패키지(pakage)란 클래스와 인터페이스를 묶어놓은 집합입니다. 클래스와 인터페이스를 묶어놓음으로써 좀더 효율적으로 관리 할 수 있습니다. 물리적인 의미로는 하나의 경로를 의미하게됩니다. 디렉터리를 의미하고 있기 때문에 패키지에 속해있는 클래스나 인터페이스 파일들은 모두 해당 패키지 명의 디렉터리에 포함되어 있습니다. 패키지는 다른 패키지를 포함할 수 있고 점으로 구분할 수 있습니다. 다음 예제는 Scanner 클래스의 패키지 이름입니다. java.util.Scanner위의 내용으로 Sc..

    [6주차] 자바스터디 - 상속

    목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속(inheritance) 상속은 하위클래스가 상위클래스로부터 필드와 메소드를 물려받을 수 있는 특징을 가지고 있다. 차량이 있을 때 자전거, 자동차, 기차 등으로 하위클래스를 생성할 수 있다. 이때 하위클래스는 차량으로부터 상속받는다는 의미로 extends 라고 입력한다. 이때 차량에 정의될 수 있는 필드와 메소드는 하위클래스에서 상속받아 사용할 수 있다. 상위클래스를 super 클래스, parent 클래스, 또는 base 클래스라고 부르고 하위클래스를 ..

    [5주차] 자바스터디 - 클래스

    목표 자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 마감일시 2020년 12월 19일 토요일 오후 1시까지. 과제 (Optional) int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. 0. 개념 클래스 클래스는 객체를 만들기 위한 모형이면서 틀이다. (temp..