패스트캠퍼스 챌린지 18일차

패스트캠퍼스 챌린지 18일차

static: 객체를 생성하지 않고 사용할 수 있는 필드, 메소드

static 메소드나 블록 내부에 인스턴스 필드, 인스턴스 메소드 사용 불가

this (객체 자신의 참조) 키워드도 사용 불가

static final : 상수

[상속]

자식 클래스 호출시 부모 클래스가 먼저 형성

자식 생성자의 맨 첫 줄에서 형성

부모 클래스에 기본 생성자가 없다면 자식 생성자에서 반드시 명시해야 함

Override: 부모 메소드보다 더 높은 단계의 접근제한자를 걸 수 없다 (더 낮은 단계는 됨)

Override 어노테이션은 생략이 가능하다

* Source Override/Implement methods

오버라이딩한 이후에도 super.부모메소드(); 사용하여 부모메소드 호출 가능

다형성 : 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질

(ex) Tire t1 = new HankookTire();

자식타입은 부모타입으로 '자동 형변환'이 가능

(ex) Cat cat=new Cat();

Animal a=cat;

자동형변환된 이후에는 객체는 자식객체를 참조해도 부모 클래스에 선언된 필드와 메소드만 접근이 가능, 하지만 Override된 경우에는 자식클래스의 해당 Override된 메소드가 호출됨 -> 왜 이런건지 한번쯤 생각해보렴

Animal a= new Cat();

동물타입인 a변수, 객체는 Cat

선언된 타입 클래스에 존재하는 메소드만 쓸 수 있고, 필드값도 같은 이름으로 재정의해도 타입클래스에 정의한 값으로 나오는데 오버라이딩된 메소드는 메소드 내에서 사용하는 필드값도 객체클래스것으로 나옴... 참조구조가 대체 어떻게 되어있는걸까?

부모를 자식 타입으로 강제 형변환 -> 자식으로 선언된것이 부모로 형변환된 경우에만 가능

boolean a instanceof b

인터페이스 선언

[자료구조]

key: 유일한 자료값

<비선형 자료구조: 앞과 뒤의 요소가 1:n으로 배치되어있는 자료구조>

트리:

트리의 자식노드 수를 '디그리(차수)'라고 함.

레벨: '단'의 갯수

이진트리 (디그리<= 2)를 가장 많이 사용

Complete binary tree 이진트리의 레프트 노드부터 채워지는 형태

heap: Max heap/Min heap (중복가능)

heap sort

priority queue

Fully complete binary tree 두개씩 다 달린것

binary search tree 중복불가

parent를 중심으로 left는 자기보다 작은값, right는 자기보다 큰 값을 가짐

avl트리, 레드블랙트리 (밸런스를 맞춰준다)

log2n는 평균값, skewed tree가 부적절한 이유

트리/그래프를 쭉 도는것 traversal

preorder inorder postorder

inorder traversal를 하면 binary search tree는 sorting이 된다 -> 순서대로 다 정렬됨

* Collection Framework의 Treeset, TreeMap이 binary search tree로 구현되어 있음

그래프: 구글맵 등

vertex(edge)

edge

인접행렬/인접리스트

BFS/DFS

해싱: JDK내에 라이브러리 존재 / Dictionary

Key/value pair로

index는 순서와는 무관하기 때문에 내가 넣은 순서와 무관하게 데이터가 출력됨

키는 유일, value는 중복될수도

hashfunction을 어떤식으로 만드느냐에 따라 분포도가 달라짐

collition관리: hashtable/chaining

- hashtable (2차원배열)

슬롯에 나란히 들어있는 애들을 synonym이라고 함

버켓(row)이 크고 슬롯(column)이 크면 오버헤드 발생

-chaining

linkedlist 활용

https://bit.ly/37BpXiC

※ 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

from http://hardblackpencil.tistory.com/51 by ccl(A) rewrite - 2021-09-24 04:01:00