전체 글 49

[커널아카데미] 백엔드 12기 4주차 - 회고 및 공부한 내용 정리

Intro이번 주는 Collection Framework 진도를 나가면서 클래스와 메서드의 타입과 상속으로 인한 오버라이딩이 어떻게 되는지 궁금하여 소스코드를 들여다 보는데 많은 시간을 소요했다. 그래서 진도를 나가는데 차질이 생겨서, 수업을 들으면서도 조바심이 났던 일주일이었던 것 같다. # 항상 진도가 우선이다.공부를 하다가 궁금증이 생기면 이를 깊게 파고들어 해결하는 습관이 있는데, 진도를 나갈 것이 없다면 좋은 습관이라고 강사님께서 말씀해주셨다. 하지만, 진도를 다 나가지 않은 상태에서 Java API를 구체적으로 보는 것은 우선 순위를 따졌을 때 좋지 않다고 하셨다.또한 이번 주 피어세션에서 나의 학습 고충을 말씀 드렸더니, 1) 너무 궁금해서 다음 일을 못하겠다면, 일주일에 깊게 해결할 궁..

회고 2025.04.20

[Operating System] '동기화 되어있다'는 게 뭐예요?

Intro자바 수업을 들으면서 '어떤 클래스가 동기화 되어있다.' 라는 말을 자주 들었다. 이에 깊게 생각하지 않고 공부를 하던 중 다음 문제 때문에 StringBuilder를 보다가 동기화가 나와서 '동기화 되어있다' 의 정확한 의미를 알고자 글을 작성하게 되었다. 궁금해진 이유StringBuilder의 동기화 되어있다는게 뭘까?HashSet 클래스에 toString() 메서드가 오버라이딩 되어있지 않다. 그럼 어디에 toString()이 오버라이딩 되어있기에 저장된 값이 '[ 1, 3, 2 ] 처럼 대괄호로 값을 출력할까'에 대한 궁금증으로 조상 클래스를 타고 가보니 AbstractCollection 클래스에서 toString()이 오버라이딩 된 것을 확인했다. 'StringBuilder를 쓴 이..

Operating System 2025.04.17

ArrayList 클래스의 remove() 메서드 파해치기

Intro자바의 정석 기초편의 ArrayList 실습을 진행하다, ArrayList 클래스의 오버로딩된 remove(Object o) 메서드를 직접 까보던 중에 'remove의 Object o 인자로 new Integer(1)을 줬는데, 어떻게 ArrayList에 저장된 new Integer(1) 객체와 주소 비교를 해서 지우는 거지?' 라는 코드를 보고 시작된 것이다. 사실 내용(1)을 비교하는 거라면 이해가 갔을 것이다. 하지만, 실제 ArrayList.java에 존재하는 'public boolean remove(Object o)' 는 Object 클래스의 equals()로 ArrayList에 저장된 Integer 객체와 인자로 받은 Integer 객체의 주소를 비교하고 있다. 문제 [28번 라인]..

Java 2025.04.15