[!INFO] 책 정보
- 저자: 저자/박은종
- 번역:
- 출판사: 출판사/이지스퍼블리싱
- 발행일: 2018-08-06
- origin_title: -
- 나의 평점:
- 완독일: 2019-12-14 01:29:02
교재 소스 https://github.com/easyspubjava/JAVA_LAB
10장 인터페이스
- 인터페이스에 선언한 메서드는 모두 구현 코드가 없은 추상 메서드이다
- 이들 메서드는 Public abstract 예약어를 명시적ㅇ로 쓰지 않아도 컴파일 과정에서 자동으로 추상 메서드로 변환됨
- 변수또한 컴파일 과정에서 값이 변하지 않는 상수로 자동 변환됨 (Public static final) 예약어를 쓰지 않아도 무조건 상수로 인식
- implements :클래스에서 인터페이스를 구현한다 라고 정의
- extends : 상속받는다
- 왜 쓰나?
- 클라이언트 프로그램에 어떤 메소드를 제공하는지 미리알려주는 명세 또는 약속의 역할을 한다
- 자바 8부터는 인터페이스에서 디폴트(default) 메서드, 정적(static) 메서드기능을 제공한다
- default 키워드로 구현
- 하위 클래스에서 오버라이딩 해서 사용가능
- 인터페이스는 다중 인터페이스를 구현(implements) 가능하다 (상속은 안됨)
- 인터페이스간에 상속도 가능하다
- 인터페이스,상속 동시도 가능
- public class BookShelf extends Shelf implements Queue{…}
11장 기본 클래스
- Object
- toString() 오버라이딩 하여 재 사용 가능
- StringBuffer , StringBuilder
- 프로그램에서 스레드를 사용하지 않는다면 StringBuilder가 속도가 더 빠름
- Warpper
- Integer(int value){}, Integer(String s){}
- Class 클래스 : 모르는 클래스의 정보를 사용할 경우에 우리가 클래스 정보를 찾기위해 사용
- 리플렉션 프로그래밍에서 사용하는 방법
- Class cls= obj.getClass() ; cls.getConstructors();cls.getFields();cls.getMethods();
12장 컬렉션
- 제네릭 프로그래밍 : 참조 자료형을 사용할 수 있도록 프로그래밍하는 방법
- <> 문자를 이용한 일반형식 사용 가능:
- public class GenericClass
{ private T aaa; void setMethod(T bbb){};}…
- public class GenericClass
- <> 문자를 이용한 일반형식 사용 가능:
- Collection 인터페이스
- List:순서가 있는 자료 관리, 중복 허용
- ArrayList
- Vector : 동기화에 사용됨(호출시마다, Lock,Release가 실행되어 속도느림)
- LinkedList
- Stack
- Queue
- Set : 순서 없음, 중복 불허
- HashSet
- TreeSet : 출력이 정렬되어짐
- 중요 메서드
- add()
- clear()
- remove()
- size
- interator : 반복자?
- Iterator ir=memberArraryList.iterator();
- while(ir.hasNext()){ Member mb=ir.next();}
- List:순서가 있는 자료 관리, 중복 허용
- Map 인터페이스 : key,value 의 쌍으로 관리하는 자료형
- Hashtable :동기화에 사용(Vector 처럼) 속도 느림
- Properties
- HashMap
- TreeMap : 키값으로 자료 정렬
-
key 값을 정렬해야 함으로 comparable,comparator 인터페스를 구현해 줘야한다. Integer 클래스는 이미 구현 되어 있다
-
Iterator
ir=treemap.keySet().iterator(); -
while(ir.hasNext()){ int key=ir.next()…}
-
- Hashtable :동기화에 사용(Vector 처럼) 속도 느림
- 중요메서드
- put(key,value)
- get(key)
- isEmpty()
- contaionsKey(key)
- containosValue(value)
- keyset() : key 집합을 Set으로 반환
- values(): values를 collection으로 반환(중복 무관)
- remove(key)
- remove(key,value)
13장 내부 클래스, 람다식, 스트림
-
내부 클래스
- 익명 내부 클래스
-
람다식 : 자바8부터 지원
-
(int x,int y) ->{return x+y;}
-
(x,y) ->{ if (x>=y) return x; else return y;}
-
(x,y) -> x>=y ? x : y
-
-
스트림
- int[] arr={1,2,3,4,5,6};
- Arrays.stream(arr).forEach(n-> System.out.println(n));
- sList.stream().filter(s->s.length() >=5).forEach(s->S..println(s)));
- cList.stream().map(c->c.getName()).forEach(s->..println(s));
- forEach()
- count()
- sum()
- reduce() :
- 자료의 대상과 관계없이 동일한 연산을 수행한다
- 한 번 생성하고 사용한 스트림은 재사용할 수 없다
- 스트림의 연산은 기존 자료를 변경하지 않는다
- 스트림의 연산은 중간 연산과 최종 연산이 있다