2024.11.26. Today I Learned

polar·2024년 11월 26일

2024년 11월 TIL

목록 보기
24/28
post-thumbnail

1. 오늘 알게 된 내용

1. PriorityQueue에서 특정 값을 삭제할 수 있다.

PriorityQueue는 맨 앞의 값만 꺼낼 수 있는 것이 아니라, 특정 값도 삭제할 수 있다.

예를 들어, priorityQueue.remove(Object o) 메서드를 활용하면 특정 값을 삭제할 수 있다.

참고로 특정한 값을 삭제하고 나면, 내부적으로 힙 구조를 재정렬하여 PriorityQueue의 특성을 유지한다.

2. String 비교 시 == 대신 Object.equals를 사용해야 한다.

== 연산자는 두 객체가 같은 참조(reference)를 가리키는지 확인한다.

즉, 두 객체가 동일한 메모리 주소를 참조하는 경우에만 true를 반환한다. 하지만, String은 Heap 영역 혹은 string constant pool에 저장되며, 값이 동일하더라도 다른 참조를 가질 수 있다.

반면, Object.equals는 객체의 내용(value)이 동일한지 확인한다. 특히 String 클래스의 equals 메서드는 내부적으로 문자열의 값을 비교하도록 재정의되어 있다.

따라서, 문자열의 내용 자체를 비교하고자 할 때는 Object.equals를 사용하는 것이 적절하다.

2. 어려웠던 내용

면접을 준비하며 자소서에 작성했던 Red-Black Tree의 삽입(insert)과 삭제(delete) 과정을 복습하고 있다.

오랜만에 봐서 그런지, Red-Black Tree의 삽입 과정과 삭제 과정을 이해하고 정리하는 데 어려움을 느낀다.

3. 궁금한 내용

면접을 준비하며 내가 작성했던 자기소개서를 여러 번 반복해서 읽고 있다. 읽다 보니 일부 문장이 약간 어색한 부분도 있지만, 전체적으로 자연스럽게 읽히고, 나라는 사람이 잘 드러나는 것 같았다.

그런데 최근에 작성한 대부분의 이력서에서는 이런 느낌이 나지 않는다. 어떻게 하면 다른 기업의 자기소개서도 완성도 높게 작성할 수 있을까?

이 점이 고민된다.

4. 느낀 점

면접 스터디를 구해야겠다.

현재 면접을 준비 중인데, 플래티어 면접에서는 자소서 기반의 질문보다는 DB 인덱스, Java 기초와 같은 기술 위주의 질문이 주로 나온다는 이야기가 많았다.

급하게 GitHub에서 인터뷰 질문을 검색하며 외우고 있지만, 자기소개서에 Red Black Tree 학습 관련 내용을 작성해서 관련 질문 또한 들어올 가능성이 높아 보인다.

문득, 이전에 CS 질문이라도 더 준비했더라면 어땠을까 하는 아쉬움이 든다. 이런 상황이 반복되지 않도록, 면접 스터디에 참여해 준비해야겠다고 생각했다.

참고

Java String 의 메모리에 대한 고찰

0개의 댓글