최근에 올라온 글
-
JAVA
자바 애노테이션 - 백기선님 스터디 12주차 과제
목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 애노테이션이란 미리 정의된 태그들을 이용해서 주석 안에 정보를 저장하고, jacadoc.exe라는 프로그램이 이 정보를 읽어 문서를 작성한다. 이를 응용하여 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것이다. 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서도 유용한 정보를 제공한다. 애노테이션 정의하는 방법 @기호를 붙이며 이외에는 인터페이스를 정의하는 것과 같다. @interface 애노테이션이름 { 타입 요소이름();// 애노테이션 요소 선언 ... } 애노테이션의 요소 애노테이션 내의 선언된 메소..
-
JAVA
자바 Enum - 백기선님 스터디 11주차 과제
목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enum 정의하는 방법 enum 열거형이름 { 상수명1, 상수명2, ...} ex) enum Direction { EAST, SOUTH, WEST, NORTH } enum이 제공하는 메소드 (values()와 valueOf()) values() 열거형의 모든 상수를 배열에 담아 반환한다. 모든 열거형이 가지고 있는 메소드로 컴파일러가 자동으로 추가해 준다. Direction [] dArr = Direction.values(); valueOf() 지정된 열거형에서 name과 일치하는 열거형 상수를 반환한다. Direct..
-
JAVA
자바 멀티쓰레드 프로그래밍 - 백기선님 스터디 10주차 과제
목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Thread 클래스와 Runnable 인터페이스 쓰레드를 구현하는 방법은 Thread클래스를 상속받는 방법과 Runnable 인터페이스를 구현하는 방법, 두 가지가 있다. 상속을 받으면 다른 클래스를 상속받을 수 없기 때문에, Runnable 인터페이스를 구현하는 방법이 일반적이다. 1. Thread 클래스 상속 class MyThread extends Thread { public void run() {} // Thread클래스의 run()을 오버라이딩 } 2. Runnable 인터페이스 구현 class MyThread i..
-
JAVA
자바 예외처리 - 백기선님 스터디 9주차 과제
목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 예외처리란? 프로그램 실행 시 발생할 수 있는 예외에 대비한 코드를 작성하는 것이다. 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것이 목표이다. 처리되지 못한 예외가 발생하면 프로그램은 비정상적으로 종료된다. 처리되지 못한 예뇌는 JVM의 예외처리기가 받아서 예외 원인을 화면에 출력한다. 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) ..
-
JAVA
자바 인터페이스 - 백기선님 스터디 8주차 과제
목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법 클래스 작성법과 같다. 다만 키워드로 class 대신 interface를 사용한다. interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름 (매개변수목록); } 인터페이스 멤버 제약사항 모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다. ..