자바15 자바 - 잘 기억 안나던 컬렉션 기능 정리 Java 컬렉션 정리1. PriorityQueue 사용법// 최소 힙(오름차순)PriorityQueue minHeap = new PriorityQueue();// 최대 힙(내림차순)PriorityQueue maxHeap = new PriorityQueue((a, b) -> b - a);// 주요 메서드pq.offer(값); // 요소 추가pq.poll(); // 최우선 요소 제거 및 반환pq.peek(); // 최우선 요소 확인2. HashMap 값으로 정렬하기Map map = new HashMap();// 값(Integer) 기준 내림차순 정렬하여 키(String) 리스트 얻기List sortedList = map.entrySet() .stream() .sorted(Map.Ent.. 2025. 1. 15. 자바 - 스트림 Java Stream개요스트림(Stream)은 데이터를 처리하기 위한 연속적인 흐름을 추상화한 인터페이스입니다.스트림의 동작 단계생성(Creation)가공(Intermediate Operations)소비(Terminal Operations)예시:List names = Arrays.asList("Kim", "Park", "Lee", "Choi");names.stream() // 생성 .filter(name -> name.length() > 3) // 가공 .forEach(System.out::println); // 소비스트림의 특징지연 연산 (Lazy Evaluation)Stream stream = names.stream() .f.. 2024. 12. 9. 자바 - try-with-resources Java의 자원 관리: try-with-resourcesJava에서는 자바 가상 머신(JVM)이 자동으로 메모리와 자원을 관리하기 위해 가비지 컬렉터(GC)를 사용합니다. 그러나 파일 입출력(IO)과 같은 외부 자원은 개발자가 직접 관리해야 하며, 이를 위해 전통적으로 try-catch-finally 구조를 사용해왔습니다. 하지만 이 구조는 가독성이 떨어지고, 여러 자원을 동시에 사용할 경우 중첩되어 복잡한 코드가 될 수 있는 단점이 있습니다. 문제점가독성 저하: try-catch-finally 구조는 코드가 복잡해져 가독성이 떨어짐.리소스 관리의 복잡성: 여러 자원을 동시에 사용할 경우 중첩된 try 문이 필요함.해결책: try-with-resources Java 7부터 도입된 try-with-reso.. 2024. 11. 28. 자바 - 객체 참조와 메모리 누수 자바의 메모리 관리: GC와 메모리 유실 문제자바는 가비지 컬렉션(GC)이라는 강력한 메모리 관리 도구를 제공하여, C나 C++과 같은 언어에서처럼 직접 메모리를 해제해야 하는 부담을 덜어줍니다. 그러나 GC가 완벽한 해결책은 아닙니다. GC는 메모리 해제가 필요한 객체만을 정리하기 때문에, 실제로 사용되지 않더라도 참조가 남아있는 객체는 메모리에 남아 있게 됩니다.참조와 메모리 해제GC는 메모리를 해제할 수 있는 조건을 따릅니다. 그 중 가장 중요한 조건은 해당 메모리를 누군가 참조하고 있는지 여부입니다. 만약 객체가 여전히 참조되고 있다면, GC는 해당 객체를 해제하지 않습니다. 이는 참조 카운팅 개념으로 설명할 수 있지만, 여기서는 자세한 설명을 생략하겠습니다. Stack 클래스의 예시아래의 코드를.. 2024. 11. 27. 이전 1 2 3 4 다음