자바 스터디 17

15주차 과제: 람다식

목표 자바의 람다식에 대해 학습하세요. 목차 1. 람다식 사용법 2. 함수형 인터페이스 3. Variable Capture 4. 메소드, 생성자 레퍼런스 1. 람다식 사용법 람다식(익명 함수) 메소드를 하나의 식으로 표현 장점 가독성 코드 간결성 멀티쓰레드 실행문을 바로 전달(메소드로 값이나 객체를 생성해 전달하는 방식과 달리 실행문 자체를 전달해 구현) 단점 람다식을 너무 많이 사용하면 가독성이 떨어짐 재사용 불가 사용법 (매개변수) -> {실행문} () -> // 실행문이 단일일 경우 {}생략 가능. return이 있으면 {}가 있어야 한다 // 함수로 작성한 덧셈 public int sum(int a, int b){ return a+b; } // 람다식으로 작성한 덧셈 (a, b) -> a+b; 2..

자바 스터디 2022.06.17

14주차 과제: 제네릭 +컬렉션

목표 자바의 제네릭에 대해 학습하세요. 목차 1. 제네릭 사용법 2. 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 3. 제네릭 메소드 만들기 4. Erasure 컬렉션 컬렉션(collection, collection framework) : 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것. 컬렉션은 자바의 인터페이스를 사용하여 구현된다. 컬렉션의 장점 데이터 구조와 알고리즘 제공으로 프로그래밍 노력을 줄여줌(직접 작성할 필요가 없음) 성능 향상 관련 없는 API간의 상호 운용성을 제공 API 학습, 설계, 구현을 하는 데 필요한 노력을 줄여줌 소프트웨어 재사용 컬렉션 ..

자바 스터디 2022.06.15

13주차 과제: I/O

목표 자바의 Input과 Ontput에 대해 학습하세요. 목차 1. 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O 2. InputStream과 OutputStream 3. Byte와 Character 스트림 4. 표준 스트림 (System.in, System.out, System.err) 5. 파일 읽고 쓰기 1. 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O 스트림(Stream) 데이터 전송 통로 - 스트림은 단방향이라 입출력을 동시에 하기 위해선 input stream, output stream이 필요하다. - 큐 형식(FIFO)을 가진다. - 스트림은 입출력 장치와 자바 응용프로그램을 연결 - 바이트나 문자 단위로..

자바 스터디 2022.06.15

12주차 과제: 애노테이션

목표 자바의 애노테이션에 대해 학습하세요. 목차 1. 애노테이션 정의하는 방법 2. @retention 3. @target 4. @documented 5. 애노테이션 프로세서 애노테이션 : 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터 . 용도 컴파일러에게 문법 에러를 체크하도록 정보를 제공 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공 실행 시 특정 기능을 실행하도록 정보를 제공 애노테이션 종류 built in annotation java에서 제공 annotation 설명 @Override 오버라이딩이 올바르게 되었는지 컴파일러가 확인 @Deprecated 사용하지 않을 메소드 표시 @FunctionalInterface 컴파일러가 함수형 인터페이스가 올바르게 되었는지 확인 @Su..

자바 스터디 2022.06.13

11주차 과제: Enum

목표 자바의 열거형에 대해 학습하세요. 목차 1. enum 정의하는 방법 2. enum이 제공하는 메소드 (values()와 valueOf()) 3. java.lang.Enum 4. EnumSet 1. enum 정의하는 방법 (1) enum(열거형) 서로 연관된 상수들의 집합 import java.util.Scanner; enum season{spring, summer, fall, winter} // enum 정의 public class EnumTest { public static void main(String[] args) { int month; Scanner sc = new Scanner(System.in); month=sc.nextInt(); if(month>=3&month=6&month=9&month

자바 스터디 2022.06.11

10주차 과제: 멀티쓰레드 프로그래밍

목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 목차 1. Thread 클래스와 Runnable 인터페이스 2. 쓰레드의 상태 3. 쓰레드의 우선순위 4. Main 쓰레드 5. 동기화 6. 데드락 멀티태스킹과 쓰레드의 개념 멀티태스킹: 여러 작업을 동시에 처리 미디어 플레이어 같은 경우 오디오, 비디오, 입력처리 태스크가 동시에 이루어 진다. 멀티태스킹은 응용프로그램의 여러 태스크가 동시에 진행되게 하는 기법으로, 응용프로그램의 목적을 효율적으로 달성하게 해준다. 쓰레드: 운영체제나 JVM에서 태스크를 실행하는 단위로서, 운영체제나 JVM에 의해 관리되는 단위. 자바 쓰레드를 보면 JVM은 하나의 태스크를 실행하기 위해 하나의 쓰레드를 만들고, 쓰래드가 태스크 코드를 실행하게끔 한다. 멀티프로세싱:..

자바 스터디 2022.06.10

9주차 과제: 예외 처리

목표 자바의 예외 처리에 대해 학습하세요. 목차 1. 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 2. 자바가 제공하는 예외 계층 구조 3. Exception과 Error의 차이는? 4. RuntimeException과 RE가 아닌 것의 차이는? 5. 커스텀한 예외 만드는 방법 1. 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 예외란 동작이나 결과에 영향을 줄 수 있는 실행 중에 발생한 오류를 말한다. 예외는 개발자가 예측하여 핸들링할 수 있다. (1) 예외가 발생하는 경우 정수를 0으로 나눌 때 배열의 크기보다 큰 인덱스 접근 존재하지 않는 파일 접근 데이터타입에 맞지 않는 입력 (2) try-catch-fin..

자바 스터디 2022.06.08

8주자 과제: 인터페이스

목표 자바의 인터페이스에 대해 학습하세요. 목차 1. 인터페이스 정의하는 방법 2. 인터페이스 구현하는 방법 3. 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 4. 인터페이스 상속 5. 인터페이스의 기본 메소드 (Default Method), 자바 8 6. 인터페이스의 static 메소드, 자바 8 7. 인터페이스의 private 메소드, 자바 9 1. 인터페이스 정의하는 방법 interface 키워드 인터페이스는 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형이다. (=규격, 틀) 클래스들이 기능을 서로 다르게 구현할 수 있도록 하는 클래스의 규격 선언, 클래스의 다형성 실현 도구. interface PhoneInterface{ // 인터페이스 선언 public static fin..

자바 스터디 2022.06.04

7주차 과제: 패키지

목표 자바의 패키지에 대해 학습하세요. 목차 1. package 키워드 2. import 키워드 3. 클래스패스 4. CLASSPATH 환경변수 5. -classpath 옵션 6. 접근지시자 1. package 키워드 (1) 패키지 서로 관련 있는 클래스나 인터페이스의 컴파일된 클래스 파일을 묶어 놓은 것(디렉터리) 같은 파일명이라도 패키지가 다르면 구분된다. (2) 경로 표시 클래스의 경로를 표기할 땐 점(.)으로 한다. java.util.Scanner 2. import 키워드 다른 패키지에 있는 클래스를 사용하기 위해서는 패키지를 불러와야 힌다. 경로를 표기해 사용할 수도 있지만 번거롭기 때문에 import를 사용하여 한 번만 경로를 알려준다. import문은 코드의 앞에 써야한다. (1) 클래스마다..

자바 스터디 2022.06.04

6주차 과제: 상속

목표 자바의 상속에 대해 학습하세요. 목차 1. 자바 상속의 특징 2. super 키워드 3. 메소드 오버라이딩 4. 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 5. 추상 클래스 6. final 키워드 7. Object 클래스 1. 자바 상속의 특징 상속이란 부모 클래스의 멤버를 자식 클래스가 사용할 수 있는 것. 클래스의 간결화로 멤버의 중복 작성이 불필요하다. 클래스 관리가 용이하다. 클래스 재사용과 확장이 용이해 소프트웨어 생산성이 향상된다. 부모클래스=슈퍼클래스=상위클래스 자식클래스=서브클래스=하위클래스 (1) 상속 특징 extends 예약어로 상속을 지정할 수 있다. 하나의 부모 클래스는 여러 개의 자식 클래스를 가질 수 있다.(여러개의 부모는 안 된다=> 다중상속×..

자바 스터디 2022.05.30