부트캠프 강의 - java
1. 문제
   - '다형성'이란?

2. 시도
   - 글을 찾아보자

3. 해결
   - '다형성'이란 말 그대로 '다양한 형태를 가질 수 있음'이란 뜻임
   - 결국 어떤 한 객체가 여러가지 타입이 될 수 있다는 뜻
   - 이 말을 좀 더 java스럽게 풀어보면, 상위클래스 타입의 참조변수로 하위 클래스의 객체를 참조할 수 있도록 하는 것임
   - 이 상위타입 참조변수는 생성된 하위클래스가 무엇인지에 따라서 같은 메소드를 실행하더라도, 오버라이딩된 것에 따라 다른 결과가 나올 수 있음

4. 알게된 점
   - 다형성 -> 다양한 형태를 가질 수 있다 -> 상속관계에서 두드러지게 나타남
1. 문제
   - System.identityHashCode()가 반환하는 값은 뭘까?

2. 시도
   - 직접 출력해보자

3. 해결
   - Object 클래스의 toString은 결국 해당 객체의 hashCode를 hexString(16진수)로 바꾼 값을 출력함
   - 그리고 Object 클래스의 hashCode는 객체의 메모리 주소를 기반으로 생성됨
   - 따라서, System.identityHashCode의 값은 메모리 기반으로 생성된 해시코드의 값을 출력하는 것
   - 실제로 객체를 하나 만들고 그 객치의 System.out.println()과 System.out.println(Integer.hexString(System.identityHashCode))의 값은 같음

4. 알게된 점
   - System.identityHashCode()는 객체의 메모리 주소 기반으로 생성된 hashcode값을 반환함
1. 문제
   - getClass와 instaceof 의 차이

2. 시도
   - 직접 알아보자

3. 해결
   - Parent p = new Child()일 때
   - getClass는 객체가 무엇으로 생성되었는지를 나타냄 -> p.getClass() == Child.class임
   - instaceof는 가능한 타입 모두를 나타냄 -> p instaceof Parent 또는 p instaceof Child 모두 가능

4. 알게된 점
   - getClass는 생성된 클래스, instanceof는 타입으로 가능한 클래스라는 차이가 있음
1. 문제
   - @FunctionalInterface의 의미

2. 시도
   - 강의

3. 해결
   - 애너테이션은 컴파일러에게 정보를 줄 때 사용
   - @FunctionalInterface 애너테이션은 해당 interface의 추상메서드는 1개라는 점을 알려주는 애너테이션
   - 그래서 만약 이 애너테이션을 사용하고 추상 메서드를 두 개이상 선언했을 때, 컴파일에서 에러가 남
   - 함수형 인터페이스는 람다를 쓸 수 있다를 알려주는 뜻이기도 함

4. 알게된 점
   - @FunctionalInterface는 추상메서드가 한개인 interface를 알려주는 애너테이션(개발자와 컴파일러 모두에게 알려줌) 

코테 준비

1. 백준 1509 - 팰린드롬 분할

: dp는 완전탐색에서 똑같은 탐색을 두 번다시 안하게 하는 기법. 탑다운 방식으로 재귀함수를 이용해서 먼저 구현하고, 이 후 중복되는 탐색을 dp배열을 이용해서 제거한다.

 

2. 백준 2482 - 색상환

: 모든 경우는 하나를 선택했을 때와 하나를 선택하지 않았을 때 발생하는 일의 합. 좀 더 쉽게 생각하자


오늘 고생했다!!! 

'TIL(Today I Learned)' 카테고리의 다른 글

2023.08.08  (0) 2023.08.08
2023.08.07  (0) 2023.08.07
2023.08.03  (0) 2023.08.03
2023.08.02  (0) 2023.08.02
2023.08.01  (0) 2023.08.01

+ Recent posts