Back
-
목차 I/O Stream Buffer InputStream / OutputStream Reader / Writer 파일 읽고 쓰기 I/O I/O는 Input과 Output의 약자이다. Input은 데이터를 입력 받는 것 이다. Output은 데이터를 출력 하는 것 이다. 프로그램의 외부에서 데이터를 조작하기 위해 사용한다. 자세한 내용은 Java Api Document에서 java.io를 확인하자. Stream Stream은 데이터의 흐름이다. 데이터가 시냇물처럼 한 방향으로 흐른다고 하여... 단방향으로 데이터를 통신한다. FIFO(First In First Out) 구조이다. Stream은 통신하는 데이터의 크기에 따라 두 가지로 나뉜다. ByteStream [ 1 Byte ] CharacterStr..
I/O Stream목차 I/O Stream Buffer InputStream / OutputStream Reader / Writer 파일 읽고 쓰기 I/O I/O는 Input과 Output의 약자이다. Input은 데이터를 입력 받는 것 이다. Output은 데이터를 출력 하는 것 이다. 프로그램의 외부에서 데이터를 조작하기 위해 사용한다. 자세한 내용은 Java Api Document에서 java.io를 확인하자. Stream Stream은 데이터의 흐름이다. 데이터가 시냇물처럼 한 방향으로 흐른다고 하여... 단방향으로 데이터를 통신한다. FIFO(First In First Out) 구조이다. Stream은 통신하는 데이터의 크기에 따라 두 가지로 나뉜다. ByteStream [ 1 Byte ] CharacterStr..
2022.08.21 -
목차 Annotation Annotation 정의하는 방법 @Retention @Target @Documented Annotation Java 5 버전에서 등장했다. java.lang.annotation 데이터를 위한 데이터를 제공한다. (메타데이터) XML 기반에서 어노테이션기반으로 발전했다. 이로 인해 유지보수성이 높아졌다. 이로 인해 생산성이 높아졌다. Annotation 장점 생산성과 유지보수성이 용이하다. 컴파일 단계에서 코드의 문법을 관리해 준다. (IDE) 코드가 깔끔해 진다. Annotation 종류 내장 어노테이션 Java에서 지원해주는 어노테이션이다. 사용자 정의 어노테이션 사용자가 정의한 어노테이션이다. 메타 어노테이션 어노테이션의 기능을 지원하는 어노테이션이다. Annotation ..
Annotation목차 Annotation Annotation 정의하는 방법 @Retention @Target @Documented Annotation Java 5 버전에서 등장했다. java.lang.annotation 데이터를 위한 데이터를 제공한다. (메타데이터) XML 기반에서 어노테이션기반으로 발전했다. 이로 인해 유지보수성이 높아졌다. 이로 인해 생산성이 높아졌다. Annotation 장점 생산성과 유지보수성이 용이하다. 컴파일 단계에서 코드의 문법을 관리해 준다. (IDE) 코드가 깔끔해 진다. Annotation 종류 내장 어노테이션 Java에서 지원해주는 어노테이션이다. 사용자 정의 어노테이션 사용자가 정의한 어노테이션이다. 메타 어노테이션 어노테이션의 기능을 지원하는 어노테이션이다. Annotation ..
2022.08.13 -
목차 enum 소개 enum 정의하는 방법 enum이 제공하는 메소드 java.lang.Enum EnumSet enum 소개 enum은 열거형 타입이다. 필드가 모두 상수(static final) 이다. 프로그램 로드시 클래스로더가 JVM Method 영역에 로드 한다. 서로 관련된 상수를 모아서 관리한다. 유지보수가 용이하다. 개발자에게 정확한 의사를 코드로 표현할 수 있다. 상수이므로 관례적으로 모두 대문자와 밑줄로 표기한다. 생성자의 접근 제한자는 무조건 private 이다. enum 정의하는 방법 // 값이 없는 경우 enum Rgb { RED, GREEN, BLUE } // ====================================================================..
Enum목차 enum 소개 enum 정의하는 방법 enum이 제공하는 메소드 java.lang.Enum EnumSet enum 소개 enum은 열거형 타입이다. 필드가 모두 상수(static final) 이다. 프로그램 로드시 클래스로더가 JVM Method 영역에 로드 한다. 서로 관련된 상수를 모아서 관리한다. 유지보수가 용이하다. 개발자에게 정확한 의사를 코드로 표현할 수 있다. 상수이므로 관례적으로 모두 대문자와 밑줄로 표기한다. 생성자의 접근 제한자는 무조건 private 이다. enum 정의하는 방법 // 값이 없는 경우 enum Rgb { RED, GREEN, BLUE } // ====================================================================..
2022.08.06 -
목차 Thread 클래스와 Runnable 인터페이스 Runnable 예제 Thread 예제 쓰레드의 상태 쓰레드의 우선순위 동기화 데드락 Thread 클래스와 Runnable 인터페이스 Runnable Interface java.lang.Runnable 함수형 인터페이스 이다. Runnable 인터페이스의 구현체는 매개 변수가 없는 run() 메서드를 정의 해야 한다. package java.lang; /** * Runnable 인터페이스는 스레드에 의해 인스턴스가 실행되도록 하는 * 모든 클래스에 의해 구현되어야 합니다. * * 클래스는 run이라고 하는 인수가 없는 메서드를 정의해야 합니다. * * 이 인터페이스는 활성화된 동안 코드를 실행하고자 하는 객체에 * 공통 프로토콜을 제공하도록 설계되었다..
쓰레드목차 Thread 클래스와 Runnable 인터페이스 Runnable 예제 Thread 예제 쓰레드의 상태 쓰레드의 우선순위 동기화 데드락 Thread 클래스와 Runnable 인터페이스 Runnable Interface java.lang.Runnable 함수형 인터페이스 이다. Runnable 인터페이스의 구현체는 매개 변수가 없는 run() 메서드를 정의 해야 한다. package java.lang; /** * Runnable 인터페이스는 스레드에 의해 인스턴스가 실행되도록 하는 * 모든 클래스에 의해 구현되어야 합니다. * * 클래스는 run이라고 하는 인수가 없는 메서드를 정의해야 합니다. * * 이 인터페이스는 활성화된 동안 코드를 실행하고자 하는 객체에 * 공통 프로토콜을 제공하도록 설계되었다..
2022.07.31 -
예외 처리 목차 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이 CheckedException과 UncheckedException 예외 처리 이유 예외 발생 시키기 자바에서 예외 처리 방법 [ try ~ catch ] 자바에서 예외 처리 방법 [ finally ] 자바에서 예외 처리 방법 [ throw ] 자바에서 예외 처리 방법 [ throws ] 커스텀 예외 만드는 방법 예외 처리 이유 개발을 하다 보면 의도치 않은 에러로 프로그램이 종료될 때가 있다. 개발자가 코드를 잘못 작성하거나, 사용자가 프로그램을 신기하게 사용하여 특정 로직에서 오류가 발생할 수 있기 때문이다. 개발자는 문제의 소지가 될 수 있는 코드에 보완 장치로 예외 처리를 하여 프로그램이 비정상적인 종료를 당하지 ..
예외처리예외 처리 목차 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이 CheckedException과 UncheckedException 예외 처리 이유 예외 발생 시키기 자바에서 예외 처리 방법 [ try ~ catch ] 자바에서 예외 처리 방법 [ finally ] 자바에서 예외 처리 방법 [ throw ] 자바에서 예외 처리 방법 [ throws ] 커스텀 예외 만드는 방법 예외 처리 이유 개발을 하다 보면 의도치 않은 에러로 프로그램이 종료될 때가 있다. 개발자가 코드를 잘못 작성하거나, 사용자가 프로그램을 신기하게 사용하여 특정 로직에서 오류가 발생할 수 있기 때문이다. 개발자는 문제의 소지가 될 수 있는 코드에 보완 장치로 예외 처리를 하여 프로그램이 비정상적인 종료를 당하지 ..
2022.07.17 -
목차 인터페이스 정의 인터페이스 구현 구현체 사용 방법 인터페이스 상속 인터페이스 default 메서드 (Java8) 인터페이스 static 메서드 (Java8) 인터페이스 private 메서드 (Java9) 인터페이스 정의 붕어빵 기계의 설계도 이다. 여러 붕어빵 체인점들이 붕어빵 기계의 설계도를 보고 설계할 수 있도록 도와 준다. 각 체인점들은 기능의 이름을 동일하고 기능의 내용은 입맛대로 설계할 수 있다. 각 체인점들은 본사의 설계서에 있는 모든 기능을 구현 해야 한다. 붕어빵 기계의 기능을 빼먹으면 붕어빵 기계는 동작하지 않는다. 붕어빵 본사는 기능의 이름으로 각 체인점들을 점검할 수 있다. 본사는 체인점의 붕어빵 기계가 고장났을 때 유지보수가 쉬워 진다. class 키워드 대신 interface..
인터페이스목차 인터페이스 정의 인터페이스 구현 구현체 사용 방법 인터페이스 상속 인터페이스 default 메서드 (Java8) 인터페이스 static 메서드 (Java8) 인터페이스 private 메서드 (Java9) 인터페이스 정의 붕어빵 기계의 설계도 이다. 여러 붕어빵 체인점들이 붕어빵 기계의 설계도를 보고 설계할 수 있도록 도와 준다. 각 체인점들은 기능의 이름을 동일하고 기능의 내용은 입맛대로 설계할 수 있다. 각 체인점들은 본사의 설계서에 있는 모든 기능을 구현 해야 한다. 붕어빵 기계의 기능을 빼먹으면 붕어빵 기계는 동작하지 않는다. 붕어빵 본사는 기능의 이름으로 각 체인점들을 점검할 수 있다. 본사는 체인점의 붕어빵 기계가 고장났을 때 유지보수가 쉬워 진다. class 키워드 대신 interface..
2022.07.09 -
목차 package 키워드 import 키워드 클래스 패스 접근제한자 package 키워드 각 클래스나 인터페이스를 효율적으로 관리 한다. 패키지를 관리함으로써 같은 이름이더라도 충돌이 일어나지 않는다. 디렉터리를 계층적으로 관리하며 계층의 사이는 ' . ' 으로 표기 한다. package를 기술하지 않으면 JVM이 해당 클래스나 인터페이스를 찾지 못한다. // Project // l // l- src // l l- com // l l- naver // l l- domain // l l- Naver.java // l- // etc directory // =============================================================================..
Package, Import, Classpath, 접근제한자목차 package 키워드 import 키워드 클래스 패스 접근제한자 package 키워드 각 클래스나 인터페이스를 효율적으로 관리 한다. 패키지를 관리함으로써 같은 이름이더라도 충돌이 일어나지 않는다. 디렉터리를 계층적으로 관리하며 계층의 사이는 ' . ' 으로 표기 한다. package를 기술하지 않으면 JVM이 해당 클래스나 인터페이스를 찾지 못한다. // Project // l // l- src // l l- com // l l- naver // l l- domain // l l- Naver.java // l- // etc directory // =============================================================================..
2022.07.02 -
목차 상속 super 메서드 오버라이딩 Dynamic Method Dispatch final 추상 클래스 상속 부모님이 자식들에게 재산을 물려 주는 것과 같다. 부모 클래스의 자원을 자식 클래스가 사용하게 된다. 자식 클래스는 다중 상속이 불가능 하다. 부모 입장에서 자식들에게 재산을 각각 물려줄 수 있다. 자식 입장에서 부모는 하나 이다. 상속은 extends 키워드를 사용 한다. class 자식 extends 부모 { } // 부모 클래스 class foo { } // 자식 클래스 class Bar extends foo { } // 자식 클래스 class Baz extends foo { } // ============================= // 다중 상속 안됨 // class Baz exte..
상속과 추상 그리고 final목차 상속 super 메서드 오버라이딩 Dynamic Method Dispatch final 추상 클래스 상속 부모님이 자식들에게 재산을 물려 주는 것과 같다. 부모 클래스의 자원을 자식 클래스가 사용하게 된다. 자식 클래스는 다중 상속이 불가능 하다. 부모 입장에서 자식들에게 재산을 각각 물려줄 수 있다. 자식 입장에서 부모는 하나 이다. 상속은 extends 키워드를 사용 한다. class 자식 extends 부모 { } // 부모 클래스 class foo { } // 자식 클래스 class Bar extends foo { } // 자식 클래스 class Baz extends foo { } // ============================= // 다중 상속 안됨 // class Baz exte..
2022.06.26