https://board.f-lab.kr/articles/1
🧑💻 자바 백엔드 기술 면접 대비하기 - 1편
🧑💻 자바 백엔드 기술 면접 대비하기 - 1편
board.f-lab.kr
자바의 모든 클래스는 Object 클래스를 상속받습니다. 그리고 Object클래스에는 equals() 와 hashCode() 라는 메소드가 선언되어 있습니다. 이 메소드들은 각각 어떤 역할일까요? 이 둘의 차이점은 무엇일까요?
답 :
equals는 두 객체가 정말 동일한지를 확인합니다. 내부 값이 아닌 정말 참조하는 메모리가 같은지 확인합니다.
hashCode는 참조하고 있는 메모리의 주소를 반환합니다. 즉 equals는 hashCode끼리 비교하는 것과 동일합니다.
답 : hashCode를 오버라이드 해도 메모리 주소를 리턴하게 할 수 있습니다. hashCode 메서드는 Object 클래스에 존재하는 메서드로 오버라이드를 한후 해당 메서드를 재호출 하면 가능합니다.
자바에서는 개발자가 메모리에 직접 접근할 수 없는 것으로 알고 있습니다.
꼬리질문
검색 키워드
꼬리질문
여기는 제가 모르게써요..... 공부해야지...
StringBuffer의 내부 코드에서는 synchronized 키워드를 이용해 multi-thread환경에서도 동기화를 유지하고 있습니다.
반면 StringBuilder는 해당 키워드가 없습니다.
동기화에 대해 고려를 하지 않는 만큼 single-thread에서는 StringBuilder를 사용하여 성능을 높이는 것이 적합하다고 생각합니다.

해보니 StringBuffer가 더 빨랐습니다. 왜 그럴까요...
'JAVA' 카테고리의 다른 글
LinkedList와 ArrayList의 remove 연산 (0) | 2023.06.21 |
---|---|
Annotation과 동작 원리 (0) | 2023.01.24 |
내 자바 코드 스타일 바꿔보기, 근데 함수형을 곁들인 - filter (0) | 2022.05.07 |
자바 조금 더 잘 사용해보자 (1) (0) | 2022.03.03 |
짤막한 개발 메모 - watchdog (0) | 2021.11.23 |