부트캠프 강의 - 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 |