Live-Study 13

[13주차] I/O

✏️ Info. - Java I/O 학습 📋 List. 1. 스트림 (Stream) 2. 버퍼(Buffer) 3. 채널(Channel) 4. Byte 5. Character 6. 표준 스트림 (System.in, System.out, System.err) 7. 파일 읽고 쓰기 ✔️ Content. 1. 스트림 (Stream) 자바는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림(Stream)이라는 흐름을 통해 다룬다. 실제 입력이나 출력이 표현된 데이터의 이상화된 흐름 운영체제에 의해 생성되는 가상의 연결고리, 중간 매개자 역할 1). 입출력 스트림(InputStream과 OutputStream) 스트림은 한 방향으로만 통신이 가능하기 때문에 입력과 출력을 동시에 처리할 수 없다. java.io 패..

Live-Study 2021.02.19

[12주차] 애노테이션

✏️ Info. Java 애노테이션 학습 📋 List. 1. 애노테이션 정의하는 방법 2. 내장 애노테이션(Built In Annotation) 3. @retention 4. 리플렉션 reflection 사용 5. @target 6. @documented 7. 애노테이션 프로세서 ✔️ Content. 1. 애노테이션 정의하는 방법 1). 애노테이션 Java 애노테이션은 자바 소스코드에 추가하여 사용할 수 있는 메타데이터의 일종 메타데이터 : 컴파일/런타임 과정에서 코드를 어떻게 컴파일하고 처리할 것인지 알려주는 정보 보통 @기호를 앞에 붙여서 사용한다. Java 1.5 이상에서 사용 가능 애노테이션은 클래스 파일에 임베디드 되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동한다. 용도 컴파일러..

Live-Study 2021.02.19

[11주차] Enum

✏️ Info. - Java Enum 학습 📋 List. 1. Enum 정의 2. Enum이 제공하는 메소드 (values()와 valueOf()) + ordinal()(추가) 3. java.lang.Enum ✔️ Content. 1. Enum 정의 1). Enum 이란 멤버라 불리는 명명된 값의 집합을 이루는 자료형 열거형(enumerated type)이라 부른다. 서료 연관된 상수들의 집합 Java 1.5부터 사용 가능 열거체를 비교할 때 실제 값 뿐만아니라 타입까지도 체크한다. 열거체의 상수값이 재정의되더라도 재 컴파일할 필요가 없다. 2). Enum 정의 enum 열거체명{상수1이름, 상수2이름, ...} public enum customEnum { RED, BLUE, ORANGE, YELLOW ..

Live-Study 2021.02.19

[10주차] 멀티쓰레드 프로그래밍

✏️ Info. - Process, Thread 학습 📋 List. 1. 프로세스(Process)란 2. 스레드(Thread)란 3. Thread 클래스와 Runnable 인터페이스 4. 스레드의 상태 5. 쓰레드의 우선순위 6. Main 쓰레드 7. 동기화 8. 데드락 ✔️ Content. 1. 프로세스(Process)란 실행 중인 프로그램 운영체제에 의해 메모리 공간을 할당받아 실행 중인 프로그램 프로세스는 프로그램에 사용되는 데이터, 메모리 등의 자원 그리고 스레드(Thread)로 구성된다 한 개의 CPU에서 사용할 수 있는 프로세스는 하나이다. 1). 프로세스가 어떻게 동시에 실행되는가? 멀티 프로세싱(다중처리) 두 개 이상의 CPU를 이용하여 다수의 프로세스를 처리하는 것 멀티 태스킹(다중 작업..

Live-Study 2021.02.19

[9주차] 예외 처리

✏️ Info. - Excetpion 과 Error 학습 📋 List. 1. Exception과 Error의 차이는? 2. 자바가 제공하는 예외 계층 구조 3. RuntimeException과 RE가 아닌 것의 차이는? 4. 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 5. 커스텀한 예외 만드는 방법 ✔️ Content. 1. Exception과 Error의 차이는? Error 시스템의 비정상적인 상황이 생겼을 때 발생 프로그램에서 복구할 수 없는 심각한 장애 보통의 JVM 기타 하드웨어 등의 시스템 문제로 발생 Error 발생시 프로그램은 비정상적으로 종료된다. ex) OutOfMemory, StackOverFlow , ThreadDeath 등 Except..

Live-Study 2021.02.19

[8주차] 인터페이스

✏️ Info. - Java Interface 학습 📋 List. 1. 인터페이스 정의하는 방법 2. 인터페이스 구현하는 방법 3. 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 4. 인터페이스 상속 5. 인터페이스의 기본 메소드 (Default Method), 자바 8 6. 인터페이스의 static 메서드, 자바 8 7. 인터페이스의 private 메서드, 자바 9 ✔️ Content. 1. 인터페이스 정의하는 방법 *앞서 배운 추상 클래스는 추상 메서드뿐만 아니라 일반 클래스와 같이 생성자, 필드, 일반 메서드를 생성할 수 있었다. 하지만 인터페이스는 오로지 추상 '메서드'와 '상수'만을 포함할 수 있다. ( Java 8 기준) 예약어로 class가 아닌 interface 키워드를 사용 접근 제어..

Live-Study 2021.02.19

[7주차] 패키지

✏️ Info. - Java 패키지 학습 📋 List. 1. package 키워드 2. import 키워드 3. 클래스 패스 4. CLASSPATH 환경변수 5. -classpath 옵션 6. 접근 지시자 ✔️ Content. 1. package 키워드 * 패키지란 서로 관련 있는 클래스 또는 인터페이스들을 묶어 놓은 묶음이다. 물리적으로 하나의 디렉터리를 의미한다. 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다. 다른 패키지를 포함할 수 있으며, 디렉터리 계층 구조는 점(.)으로 구분된다. 규칙 숫자로 시작해서는 안된다. _, $를 제외한 특수문자 사용 금지 java로 시작하는 패키지는 자바 표준 API에서만 사용하므로 사용해서는 안된다. 소문자로 작..

Live-Study 2021.02.19

[6주차] 상속

✏️ Info. - Java 상속 학습 📋 List. 1. 자바 상속의 특징 2. super 키워드 3. 메서드 오버 라이딩 4. 다이내믹 메서드 디스패치 (Dynamic Method Dispatch) 5. 추상 클래스 6. final 키워드 7. Object 클래스 ✔️ Content. 1. 자바 상속의 특징 * 상속 : 자식이 부모로부터 무언가 물려받는 것 Java 상속 : 자식 클래스가 기존의 부모 클래스로부터 기능을 물려받아 자식의 클래스에 기능을 추가하거나, 나 재정의하여 새로운 클래스를 정의하는 것. 장점 클래스, 멤버 재활용 클래스 간의 계층 관계 구성으로 다형성 토대 마련 특징 하나의 클래스만 상속 - 다중 상속 불가능 부모 클래스의 멤버와 메서드만이 상속되며, 생성자와 초기화 블록은 상속..

Live-Study 2021.02.19

[5주차] 클래스

✏️ Info. - Java Class 학습 📋 List. 1. 클래스 정의하는 방법 2. 객체 만드는 방법 (new 키워드 이해하기) 3. 메서드 정의하는 방법 4. 생성자 정의하는 방법 5. this 키워드 이해하기 ✔️ Content. 1. 클래스 정의하는 방법 Class 객체 지향 프로그래밍(OOP, Object-Oriented Programming) 에서 핵심인 Object를 만들기위한 설계도와 같은 개념 Class 는 객체의 상태를 나타내는 Field 와 객체의 행동을 나타내는 Method로 구성된다. Class 선언 방법 public class StudyClass { // Field // Method // Constructor } Class, Field, Method 에서 접근제어를 사용함을..

Live-Study 2021.01.04

[4주차] 제어문

✏️ Info. - Java 제어문 학습 📋 List. 1. 선택문 2. 반복문 ✔️ Content. 1. 선택문 If 조건식에 맞는 코드를 실행한다. private static void conditionIf(int a, int b) { /** * if(condition 1){ * code * }else if(condition 2){ * code 2 * }else{ * code 3 * } * */ if(a > b){ System.out.println("a 는 b 보다 큽니다."); }else if (a < b){ System.out.println("b 는 a 보다 큽니다."); }else{ System.out.println("a 와 b는 같습니다."); } } if 문 순서 3항 연산 IF 문의 단축 문..

Live-Study 2020.12.31