기술 서적 (25) 썸네일형 리스트형 [객체지향의 사실과 오해] ch4. 역할, 책임, 협력 최후통첩 게임이라는 것이 있다. 연구팀은 사람들에게 일정 금액을 주고, 제안자는 금액 일부를 응답자와 나누어 가져야 한다. 제안자는 6:4, 7:3처럼 분배비율을 단 한번 제안할 수 있고 응답자는 제안을 수용하거나 거부할 수 있다. 수용하면 비율대로 금액을, 거부하면 둘다 상금을 받지 못한다. 인간이 합리적이라면 응답자는 단 1원이 떨어지는 분배비율에 대해서도 수용해야 한다. 반대로 제안자는 최대한 적은 비율을 응답자에게 제안할 것이다. 그러나, 실제 제안결과는 40%이상을 제안한 비율이 가장 높았다. 수용결과 또한 20%미만에 대해서는 제안을 거부했다. 이 실험은 인간은 '합리적'이라는 본질을 가지고 있는 것이 아니라, 상황(context)이 인간의 행동을 결정한다는 사실을 보여준다. 그러나, 객체설계.. [자바의 정석] 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) 참조.. [객체지향의 사실과 오해] ch3. 타입과 추상화 >>추상화 >> 추상화를 통한 복잡성 극복 추상화 : 현실에서 출발하되 불필요한 부분을 도려내가면서 사물의 놀라운 본질을 드러내는 과정 - 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법 - 추상화의 수준, 이익, 가치는 목적에 의존적 >> 방법 2가지 1) 일반화 : 공통점을 취하고 차이점을 버림 2) 불필요한 세부사항을 제거 >>개념 : 객체를 분류하는 기준 - 공통점을 기반으로 객체들을 묶기 위한 그릇 => 개념을 기반으로 그룹으로 분류 => 개념 그룹 ∋ 개체 : 개체를 개념의 인스턴스라고 함 >> 개념의 3가지 관점 : 심볼 / 내연 / 외연 - 심볼 : 개념을 가리키는 간략한 이름이나 명칭 ex) 트럼프 - 내연 : 개념의 완전한 정의 / 내연의 의미를 이용해 객체가.. [자바의 정석] 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) 같.. [객체지향의 사실과 오해] ch2. 이상한 나라의 객체 / 상태 -행동 -식별자 목차 1. 객체, 그리고 이상한 나라 2. 객체 : 상태+ 행동+식별자 3. 행동 초점의 객체 설계 : 행동이 상태를 결정한다 4. 소프트웨어는 현실의 모방이 아니다 : 의인화+은유 1. 객체, 그리고 이상한 나라 >> 앨리스 객체 - 앨리스의 상태(키)를 결정하는 것은 행동임 - 행동의 결과로 상태가 영향을 받음 - 행동의 성공여부(문을 열고 들어감)는 이전에 어떤 행동들이 발생했는지(음료, 케잌 등등)에 영향을 받음 요약 1) 앨리스는 상태를 가지며 상태는 변경가능하다 - 키/ 위치 등은 변경가능함 2) 앨리스의 상태를 변경시키는 것은 앨리스의 행동이다. - 행동의 결과는 상태에 의존하며 상태를 통해 서술가능하다 - 행동의 순서가 결과에 영향을 미친다. 3) 앨리스는 어떤 상태에 있더라도 유일하게 식.. [자바의 정석] 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.. 이전 1 2 3 4 다음