목록스터디/백기선 라이브 스터디(자바) (15)
영권's
목표 자바의 람다식에 대해 학습하세요. 학습할 것 (필수) 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 람다식(Lambda expression)이란? 람다식은 간단히 말해서 메서드를 하나의 '식(expression)'으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수(anonymous function)이라고도 한다. 예) int arr[] = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random()*5)+1); 여기서 (i) -> (int)(Math.random()*5)+1) 이 바로 람다식이..
목표 자바의 제네릭에 대해 학습하세요. 학습할 것 (필수) 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 제네릭이란? 데이터 타입을 일반화 하는 것을 의미한다. 제네릭은 클래스나 메서드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 이렇게 컴파일 시 type check를 하면 장점이 있다. 클래스나 메서드 내부에서 사용되는 객체 타입의 안정성을 높일 수 있다. 반환 값에 대한 타입 변환 검사에 들어가는 노력을 줄일 수 있다. Java5 이전에서는 여러 타입을 사용하는 대부분의 클래스나 메서드에서 인수나 반환값으로 Object타입을 사용했었다. 하지만 이 경우 반환된 Object 객체를 다시 원하는 타입으로 타입을 변환해야하고, 이..
목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 I/O 입출력 입출력이란? 입출력(I/O)란 Input과 Output의 약자로 입력과 출력, 간단히 입출력이라 한다. 입출력은 컴퓨터 내부 또는 외부 장치와 프로그램간의 데이터를 주고 받는 것을 말한다. 키보드로부터 데이터를 입력 System.out.println()을 이용해 화면에 출력 스트림(stream) 자바에서 어느 한 쪽에서 다른 쪽으로 데이터를 전달하려면, ..
목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 어노테이션(Annotation) 사전적 의미로 주석을 의미하며 프로그램에 대한 데이터를 제공하는 메타데이터의 한 형태 입니다. 어노테이션과 일반적인 주석은 뭐가 다른걸까? - 어노테이션의 역할도 주석과 크게 다르지 않는다. - 일반주석과 큰 차이점은 코드를 작성할 수 있다는 것이 다르다. - 코드를 작성할 수 있다는 뜻은 어노테이션으로 뭔가를 할 수 있다는 뜻이 된다. - 어노테이션도 enum과 마찬가지로 1.5에 등장했다고 한다. 메타 데이터(metadata) : 데이터에 대한 데이터. 즉, 다른 데이터를 설명해주는 데이터입니다. 애노테이션의..
목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enum : 열거형이라고 불리며, 서로 연관된 상수들의 집합이라고 불린다. 상수란? 변하지 않는 값을 의미 합니다. 자바에서는 final static 키워드가 붙은 값을 상수라고 합니다 열거형은 JDK 1.5에서 추가 되었으며 열거형이 갖는 값뿐만 아니라 타입까지 관리하기 때문에 논리적인 오류를 줄일 수 있다. 자바 외 언어들에서는 타입이 달라도 값이 같으면 조건식 결과가 참(true)인 경우가 있으나, 자바의 열거형은 '타입에 안전한 열거형(typesafe enum)' 이라서 실제 값이 같아도, 타입이 다르면 컴파일..
목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 프로세스와 쓰레드 프로세스란 간단히 말해서 '실행중인 프로그램'이다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리등의 자원 그리고 스레드로 구성 되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드이다. 그래서 모든 프로세스는 최소 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스'라고 한다. 하나의 프로세스가 가질 수 있는 쓰레드의 개구는 제한되어 있지 않으..