일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 네이버 클라우드
- spring
- Naver Cloud Platform
- DBDocs
- ngrinder
- Database
- NooBLoL
- junit
- AssertJ
- F-Lab
- ncloud
- React
- 네이버클라우드
- object storage
- mybatis
- Scheduler
- docker
- NaverCloudPlatform
- 에프랩
- Pinpoint
- NCP
- Java
- Thymeleaf
- OrientalUnity
- navercloud
- 회고
- papago
- spring boot
- Enum
- Naver Cloud
Archives
- Today
- Total
DevJong12
22.05.16 F-Lab멘토링 본문
728x90
F-Lab의 3주차 멘토링을 받았던 질문들에 대해서 정리를 해놓고자 한다.
책을 많이 읽고 가야한다고 생각은 하는데 막상 쉽지가 않은 것 같다..
[동일성과 동등성]
동일하면 동등하지만 동등하다고 동일한 것은 아니다..
- 동일성
- 동일의 의미로 두 개의 객체가 완전히 같은경우 (주소값이 같은 경우)
- 동등성
- 동등하다는 의미, 두개의 객체가 같은 정보를 가지고 있는경우(주소값은 다름)
==연산자를 통해 동일한지의 여부를 알수있으며, equals를 통해 동등한지 여부를 확인 가능..
허나 equals를 통해 모든 것을 다 동등한지 여부를 확인할 수는없다 Object메소드에서는 동일성확인을 하는 것이기떄문.
오버라이드를 해서 재정의를 해야함.
[equals와 해쉬코드의 차이점, 왜 숫자일까]
- equals는 객체의 내용이 같은지를 비교 하며(동등성)
- hashCode는 두 객체가 같은 객체인지 동일 비교(==)
- 런타임중 객체의 유일한 정수 값을 반환, 해당 반환값은 Heap에 저장된 객체의 메모리주소 이다.
- 해시함수를 사용하여 가변 크기의 입력 값에서 고정된 크기의 출력값을 생성하는 과정이며, 해당(해싱)과정을 통해 얻어온 값을 해시코드라고 함. -> 해당이유가 정수값으로 나오는 이유..?
[인터페이스와 추상화 클래스의 차이, 선택의 기준]
- 추상클래스
- 여러 모델의 클래스를 생성할 때 공통된 상태의 틀을 만들때 사용하면 좋음
- 실체 클래스의 공통상태의 모음
- 특징
- abstract키워드를 붙임
- 추상클래스로 생성하면 new키워드를 통해 객체를 직접 생성이 ㅂ루가능함
- 인터페이스처럼 구현부가 없슴
- 서브클래스에서 반드시 구현해야함.
- 일반클래스와 동일하게 상태(멤버변수, 일반메소드)와 생성자를 가질 수 있다
- 접근제어자의 사용이 자유롭다
- 다중상속이 불가능하다
- 인터페이스
- 구현된 것이 없으며 설계도 그 자체
- 특징
- 모든 멤버 변수는 public static final이어야 하며, 생략이 가능하다
- 모든 메소드는 public abstract이어야 하며 생략이 가능하다
- Java 8 부터는 static, default method를 사용이 가능하다
- 추상 클래스처럼 불완전하기 떄문에 다른클래스를 작성하는데 도움을 줄 목적으로 작성된다.
- 다중 상속이 가능하다.
- 공통점
- 추상 메소드를 사용이 가능하다는 점
- 차이점
- 다중상속여부
- 인터페이스는 다른 여러개 인터페이스를 함께 구현이 가능함
- 추상클래스는 다중 상속이 불가
- 상태 유무
- 추상 클래스는 상태(멤버변수, 일반메소드, 생성자)를 가질수 있음
- 인터페이스는 추상클래스의 반대로 상태를 가질수가 없다
- 다중상속여부
[Exception에서 checkedException와 UncheckedException]
Exception과 Error
- 공통점
- Throwable클래스를 상속받음
- 오류상황이 발생될 경우 사용
- 차이점
- Exception
- 프로그램이 실행이 되는 도중 참조된 값이 잘못되는 경우 등의 정상적인 프로그램 흐름을 벗어나는 것을 말함.
- 개발자가 직접 처리할 수 있으며, 예측하여 핸들링이 가능함
- Error
- 시스템에 비정상적인 상황이 발생 하였을 경우 발생하며, 복구할 수 없는 경우
- 개발자가 예측하기 쉽지 않고 처리하거나 핸들링 할 수 있는 방법도 없슴.
- Exception
Checked Exception, Unchecked Exception
- Checked Exception
- RuntimeException의 하위클래스가 아닌 Exception클래스의 하위클래스들
- 명시적인 예외처리를 강제한다
- try~catch로 예외를 잡거나 throw로 호출한 예외를 던져야 함.
- 예외가 발생하였을 경우 복구(또는 RollBack)이 가능하다
- Unchecked Exception
- RuntimeException의 하위 클래스를 의미
- 명시적인 예외 처리를 강제하지 않음
- try~catch를 통해 예외를 잡거나 throw로 호출한 메소드에게 예외를 던지지 않음
728x90
'Java,Spring > F-Lab' 카테고리의 다른 글
22. 06. 20 F-Lab 멘토링 (0) | 2022.06.27 |
---|---|
22. 05. 30 F-Lab 멘토링 (0) | 2022.06.12 |
22.05.24 F-Lab멘토링 (0) | 2022.05.30 |
22.05.09 F-Lab멘토링 (0) | 2022.05.11 |
22.05.04 F-Lab멘토링 (0) | 2022.05.05 |
Comments