기술 서적/자바의 정석 (13) 썸네일형 리스트형 [자바의 정석] ch14-1. 람다식 목차 1. 람다식이란? 2. 람다식 작성하기 3. 함수형 인터페이스 ;4. java.util.function 패키지 ;5. Function의 합성과 Predicate의 결합 ;6. 메서드 참조 1. 람다식 1.1 람다식이란? 람다식 : 메서드를 하나의 식으로 표현한 것 메서드를 람다식으로 변형하면 메서드의 이름과 반환값이 없어지므로 "익명함수" 라고도 한다. 모든 메서드는 클래스의 포함되어야 하기에 클래스 제작 + 객체 생성이 필수적이지만 람다식은 다음의 과정이 없이 메서드 역할을 수행하게 할 수 있다. 1.2 람다식 작성하기 1) 메서드의 이름과 반환타입을 제거하고 ->을 블록 {} 앞에 추가한다 2) 반환값이 있는 경우 식이나 값만 적고 return 문 생략 가능(끝에 ;을 안붙임) 3) 매개변수 타.. [자바의 정석] ch13. 쓰레드 1. 프로세스와 스레드 프로세스 : 실행중인 프로그램 -- 프로그램을 실행하면 OS로부터 실행에 필요한 자원을 할당받아 프로세스가 된다. 쓰레드 : 프로세스의 자원(데이터/메모리)를 사용해서 실제 작업을 수행하는 것 싱글쓰레드 프로세스 : 하나의 쓰레드를 가진 프로세스 멀티쓰레드 프로세스 : 둘 이상의 쓰레드를 가진 프로세스 >멀티 태스킹 vs 멀티 쓰레드 멀티 태스킹 : 동시에 여러 프로세스를 실행시키는 것 멀티 쓰레딩 : 하나의 프로세스에 여러 쓰레드를 실행시키는 것 - 프로세스 비용 > 쓰레드 생성 비용 - 같은 프로세스내 쓰레드들은 자원을 공유한다 >멀티 스레딩의 장단점 2. 쓰레드의 구현과 실행 방법 2가지 방법1. Thread 클래스를 상속 class MyThread extends Thread.. [자바의 정석] ch12. Generics / enums / annotation 1. 지네릭스(Generics) 더보기 - 컴파일 시, 타입체크를 해주는 기능 => 타입안전성 상승 - 의도하지 않은 객체 저장 예방 - 잘못된 형변환 오류 예방 - 클래스와 메서드에 선언 가능 >>지네릭 클래스의 선언 :클래스를 작성할 때 Object 대신 T같은 타입변수를 사용 >>지네릭스 용어 => Box과 Box는 같은 클래스이다. => Box에 서로 다른 타입을 대입하여 호출한 것일 뿐 >>지네릭스 제한 - static 멤버에 T사용 불가 : 모든 객체에 대해 동일해야 하는데 변수가 다르기 때문 - 지네릭 타입의 배열 x => new T[10] ==> new 연산자는 컴파일 시점에 타입 T가 무엇인지 알아야 하는데 T가 어떤 타입이 될지 알수 없음 >>지네릭 클래스의 객체 생성과 사용 1) 참조.. [자바의 정석] ch11-3.컬렉션 프레임워크 : HashMap/TreeMap / Collections 1. HashMap 더보기 - Map 인터페이스를 구현 - key와 value를 하나로 묶어서 하나의 데이터(entry)로 저장 - 순서를 유지하려면 LinkedHashMap클래스를 사용 => Entry라는 내부 클래스를 정의하고, Entry 타입의 배열을 선언하고 있음 비 객체지향적 객체지향적 코드 Object [] key; Object [] value; Entry [] table; class Entry{ Object key; Object value; } => (key, value) 를 (Object, Object)형태로 저장 >>메서드 - entry값 : entrySet => Set - key 값 : keySet => Set - value값 : values() =>Collection 반환 ex1) 같.. [자바의 정석] 11-2.컬렉션 프레임워크 : iterator / Arrays / Comparator / Set 1.5 Iterator 더보기 - 컬렉션에 저장된 요소 접근에 사용 - iterator() : iterator 반환 메소드 - 컬렉션에 정의=> 자손인 List/Set에도 호출 가능 - List : 순서가 저장됨 - Set : 순서가 저장x - Map은 직접호출 불가 => EntrySet이나 keySet로 collection 얻어온 후, 호출 가능 >>메서드 ex) package ch11; import java.util.*; public class IteratorEx1 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); list.add("4.. [자바의 정석] ch11-1 : 컬렉션프레임워크 -- List / Stack-Queue 1. 컬렉션 프레임워크 더보기 : 데이터 군을 저장하는 클래스들을 표준화한 설계 >>컬렉션 프레임웤의 3가지 인터페이스 => Collection : List와 Set의 공통된 부분을 뽑아 정의한 인터페이스 >> Collection 인터페이스의 메서드 >>List 인터페이스 : 순서 존재 + 중복허용 -- 메서드 >>Set인터페이스 : 순서x + 중복 x >>Map 인터페이스 -- 키와 값을 하나의 쌍으로 묶어서 저장 - 키는 중복이 불가/ 값은 중복이 가능 - 순서가 존재x ㅡMap.Entry 인터페이스 : Map 인터페이스의 내부 인터페이스 : key-value 쌍을 다루기 위한 인터페이스 메서드 설명 boolean equals(Object o) 동일한 Entry인지 확인 Object getKey() .. [자바의 정석] ch9-1. java.lang 패키지와 유용한 클래스 1. Object 클래스 더보기 - object 클래스는 모든 클래스의 최고조상 == object 클래스의 멤버들은 모든 클래스에서 바로 사용 가능 Object 클래스의 메서드 설명 protected Object clone() 객체 자신의 복사본을 반환 public boolean equals(Object obj) 객체 자신과 객체obj가 같은 객체인지 알려줌 (참조변수의 주소값을 비교) protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동 호출 public Class getClass() 객체 자신의 클래스 정보를 담고 있는 Class 인스턴스를 호출 public int hashCode() 객체 자신의 해시코드를 반환 public String toString() 객체 .. [자바의 정석] ch8. 예외처리 >>프로그램 오류 : 에러는 어쩔 수 없지만 예외는 처리해야 함 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 >>예외 클래스의 계층구조 - Object를 가장 상위계층으로 - Throwable => Exception + Error - RunException 클래스 -> 프로그래머의 실수로 발생하는 예외(예외처리 선택) - Exception 클래스 들 => 사용자의 실수와 같은 외적인 요인에 의해 발생(예외처리 필수) >>예외 처리하기 : 프로그램 실행시 발생가능한 예외에 대비한 코드를 작성하는 것 => 프로그램 비정상 종료를 막음 try-catch문 - 1. 하나의 메서드에 여러개의 try-catch문 사용 가능 - 2. .. 이전 1 2 다음