java 3

[Java] TreeSet의 구조와 주의사항

TreeSet 구조 TreeSet은 필드로 NavigableMap인터페이스를 필드로 가지고 있으며 TreeMap클래스가 필드인NavigableMap 인터페이스를 구현하는 구조를 가지고 있습니다. TreeSet 생성자가 호출되면 m 필드에 TreeMap클래스가 할당되게 됩니다. 저는 이 TreeSet을 사용하면서 예상한 결과값이랑 다르게 결과가 나와서 어떤 이유인지 찾아보기로 했습니다. 문제점 결과 x만 비교하여 TreeSet 자료구조를 사용했을 때는 1개의 요소밖에 존재하지 않았습니다. HashSet이라면 객체의 hashCode()와 equals()를 비교하여 객체의 수가 2라는 결과가 나왔을텐데 말이죠... 결과 x와 y 모두 비교하는 코드를 작성했습니다. 이번에는 원하는 결과가 나왔습니다. 왜 이런 ..

JAVA 2024.02.29

[JAVA] GC란?

GC란? 프로그램이 동적으로 할당했던(heap 영역) 메모리 영역 중 필요 없게 된 영역을 여러 알고리즘을 통해 해제하는 것입니다. 장점 - 메모리 누수 방지 - 해제된 메모리에 접근 방지 - 해제한 메모리 또 해제 방지 단점 - GC 작업은 순수 오버헤드 - 개발자는 언제 GC가 메모리를 해제하는지 모릅니다. Reference Counting 객체의 접근할 수 있는 카운팅 넘버를 통해 현재 참조중인지 확인하는 알고리즘 문제점 : 힙 객체가 서로 참조하고 있으면 순환참조로 GC제거 대상에서 제외된다 Mark And Sweap root로 부터 연결되어 있다면 rechable 연결되어 있지 않다면 unreachable 단점 의도적으로 GC를 실행시켜야 한다. 어플리케이션 실행과 GC 실행이 병행됩니다. Ro..

JAVA 2023.11.09