0. 학습할 것 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 1. 어노테이션 이란? 자바를 개발한 사람들은 소스코드에 대한 문서를 따로 만들기보다 소스코드와 문서를 하나의 파일로 관리하는 것이 낫다고 생각했다. 그래서 소스코드의 주석 '/** ~ */' 에 소스코드에 대한 정보를 저장하고, 소스코드의 주석으로부터 HTML 문서를 생성해내는 프로그램(javadoc.exe)를 만들어 사용했다. 위와 같이 소스코드 안에 다른 프로그램(ex: javadoc.exe)을 위한 정보를 미리 약속된 형식으로 포함시킨 것이 바로 애노테이션이다. 어노테이션은 JEE5부터 추가된 요소로 사전적 의미로는 주석을 의미한다. 하지만 자바에서는 단순 주석이 아닌 클래스에 특수..
Language/Java-Weekly-study
0. 학습할 것 enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 1. Enum 이란 enum이란 enumerated type의 줄임말로 멤버라 불리는 명명된 값의 집합을 이루는 자료형이다. 즉, 열거형에 사용될 수 있는 특정한 값들을 정의해서 해당 값들만 사용할 수 있게 한다. 참고로, 열거자 이름들은 일반적으로 해당 언어의 상수 역할을 하는 식별자이다. 열거형은 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. 자바는 C언어와 다르게 열거형이라는 것이 존재하지 않았으나 JDK 1.5부터 새로 추가되었다. 자바의 열거형은 C언어의 열거형보다 더 향상된 것으로 열거형이 갖는 값뿐만 ..
0.학습할 것 Thread 클래스와 Runnable 인터페이스 Main 쓰레드 쓰레드의 우선순위 동기화 쓰레드의 상태 데드락 0-1. 용어(개념) 정리 프로세스(Process) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위(동적인 개념으로는 실행된 프로그램을 의미) 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 한 프로세스가 다른 프로세스의 자..
0. 학습할 것 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 1. Exception과 Error의 차이 ERROR (에러) 오류(Error)은 시스템의 비정상적인 상황이 생겼을 때 발생한다. (JVM 실행에 문제가 생김) 시스템 레벨에서 발생하기 때문에 심각한 수준의 오류이다. 개발자가 미리 예측하여 처리할 수 없기 때문에, 애플리케이션에서 오류에 대한 처리를 신경쓰지 않아도 된다. 프로세스에 영향을 준다. public class ErrorExample { public static void main(S..
0. 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 1. 인터페이스 정의하는 방법 인터페이스는 내부의 모든 필드(변수)가 public static final 로 정의됨 인터페이스의 static, default메서드를 제외한 모든 메서드는 public abstract 로 정의됨 인터페이스는 다중상속을 지원한다. 인터페이스는 동일한 목적하에 동일한 기능을 수행하게끔 강제하는것이 역할이자 개념 인터페이스는 "Inteface" 키워드를 통해 선언할 수 있으며, "implements..
0. 학습할 것 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 1. package 키워드 클래스와 인터페이스의 집합을 의미한다. 이렇게 서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있게 된다. 자바에서 패키지는 물리적으로 하나의 디렉터리를 의미한다. 하나의 패키지에 속한 클래스, 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다. 이러한 패키지는 다른 패키지를 포함할 수 있으며, 이때 디렉터리의 계층 구조는 점(.)으로 구분된다. 상위패키지.하위패키지.클래스 패키지는 클래스를 유일하게 만들어주는 "식별자" 역할을 한다. 클래스의 전체 이름은 "패키지 + 클래스명" 이다. 모든 클래..
0. 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 1. 자바 상속의 특징 1-1. 상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 이다. 즉, 부모 클래스의 멤버(변수,메서드)를 자식 클래스에게 이관하는 것(물려주는 것) 이다. 이런 상속은 코드의 재사용성을 통해 코드의 간결성을 확보해 준다. 상속 받는 클래스 = 하위클래스 = 자식클래스 = 서브클래스(sub class) 상속 해주는 클래스 = 상위클래스 = 부모클래스 = 슈퍼클래스(super class) 1-2. 상속을 하는방법 extends 키워드를 사용하여 상속한다. class 자식클래스명 ext..
학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 0. OOP란? 객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 각 개체들 간의 관계를 서술하는 방식으로 프로그래밍 하는 기법을 말한다. 자바는 객체지향 프로그래밍(OOP)이 가능한 객체 지향 언어이다. 객체(object)란 간단히 이야기하자면 실생활에서 우리가 인식할 수 있는 사물로 설명할 수 있다. 다시 말해, 객체의 상태(state)와 행동(behavior)을 구체화하는 형태의 프로그래밍이 바로 객체 지향 프로그래밍입니다. 이때 객체를 만들어 내기 위한 설계도와 같은 개념을 클래스(class)라고 합니다. 용어 간단 정리 1. 클래..
학습할 것 선택문 반복문 과제 JUnit5 학습 live-study 대시보드 만들기 LinkedList구현 Stack구현 과제3을 이용한 Stack 구현 Queue 구현 0. 제어문 Java에서 코드의 실행흐름은 위에서 아래로 한 문장씩 순차적으로 진행되었다. 때로는 조건에 따라 문장을 건너뛰거나 같은 문장을 반복해서 수행해야할 때가 있다. 이처럼 프로그램의 흐름(flow)을 바꾸는 역할을 하는 문장들을 제어문(control statement) 이라 한다. 제어문에는 조건문과 반복문이 있는데 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다. 1. 선택문 (조건문) 조건문은 조건식과 문장을 포함하는 블럭 {} 으로 구성되어 있으며, 조건식의 연산 결과에 따라 실..
해당 포스팅은 백기선님 java live-study를 통해 학습한 내용입니다. https://github.com/whiteship/live-study/issues/3 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 0. 연산자 연산자: 연산에 사용되는 표시나 기호 피연산자: 연산되는 데이터 연산식: 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것 // +, -, *, == 은 연산자 // x, y, z는 피연산자 x + y x - y x * y + z x == y 연산자의 종류 연산자를 크게 4가지로 산술, 비교, 논리,..