스레드를 생성
한다.고정 소수점 방식
은 정확도는 높지만 큰 수를 표현하기 위해서는 많은 양의 메모리가 사용된다는 단점이 존재. 따라서 이 문제를 해결하기 위해 부동(float)소수점 방식
이 도입되었습니다.현대 컴퓨터는 IEEE의 부동소수점 방식을 이용 자바는 부동소수점 방식!
// code식으로 double float 비굑 방법 정리
1) == 는 절대 안되고
2)
Float.compare(f1, f2) == 0
Double.compare(d1, d2)
3)
double과 float값을 비교 할때에는 모두 float로 형변환 하거나 정수로 변환하여 비교해야 한다.
4)
통화 계산에는 BigDecimal
// 해쉬충돌 알고리즘
1) Separate Chaining 기법 : 각 인덱스에 할당된 것이 값이 아니라 연결리스트로 추가적인 공간을 활용하는 것(LinkedList방식)
-> 상대적으로 적은 메모리를 사용한다. 미리 공간을 잡아 놓을 필요가 없다
2) Open Addressing 기법 : 인접한 다른 비어있는 해시 버킷(배열)을 찾아 삽입하는 방법 (Array방식)
-> 데이터의 길이가 늘어나면 그에 해당하는 저장소를 마련해 두어야 한다.
자바 hashMap에 충돌해결기법 => Separate Chaining 기법
자바 8부터는 Seperate Chaining에서 데이터 개수가 많아지면 LinkedList대신 Tree(red black tree)를 사용해 성능적으로 더 좋아지게 하였다.
<오브젝트> 책 300페이지. 하지만 내가 제대로 이해했다고 생각되지 않는다.
다시 재독이 필요할 것이라 본다.
스프링 입문, 개구리 책 1회독 (AOP, 자바 람다 제외) 객체 지향원칙(캡.상.추.다, SOLID원칙 등)을 이해하는 데도 정말 도움을 많이 받았다.
김영한 강의 기본원리 강의 마무리. 바로 JPA 강의로 들어간다.
알고리즘, 자료구조 이것도 좋지만 코딩테스트 문제 정리
인프런의 코딩테스트로 맛보기 좀 하고 백준 문제 풀이가 시급.
hashMap 시간 복잡도 그 외 해쉬 충돌 알고리즘 다시 정리
Tree(그래프의 일종)의 시간복잡도 그외 장점
연결형 리스트 vs Tree
DB에 인덱스당 B트리가 만들어지는 것. 이게 이진트리보다 더 빠르다.
파이썬 딕셔너리와의 차이점 // 상관없는 내용이었음. ㅋ
Array 메모리 관리 다시 한번 정리
객.사.오(객체지향의 사실과 오해) 이야기
중요한 키워드 : 책임
, 디커플링
, 캡슐화
디자인 패턴(김영한 AOP 고급 강의에서 발췌하기)
자바 컬렉션(자료구조)의 시간복잡도 이야기를 많이 이야기 해주었다. 알고리즘의 핵심은 시간복잡도
라고 한다. 거기서 파생된 장단점에 대해 이해하면 더 쉽게 와닿는다고 한다.
점점 자바 이야기는 끝이 가고 있다는 게 느껴진다. 책들(객사오, 엘리스책, 스프링 개구리책)을 가지고 이야기하자고 한다.
멘토님과의 자바 이야기는 괜찮지만 역시 알고리즘, 코딩 테스트가 너무 어렵다..
해당 내용을 하자니 시간이 부족하다는 걸 너무 많이 느끼게 된다.
해야겠다고 하는데 상당히 부담이 느껴진다. 다른 공부가 약하다고 느껴지니 CS, 자료구조, 알고리즘, 코딩테스트 풀기가 어느정도 되야겠다고 생각된다.
그래서 인프런 강의로 조금 채워야 겠다. 하나씩 하나씩 풀어나가보자.