본문 바로가기

ComputerScience/Java

(10)
[Java] abstract vs interface 언제 써야하는가? 디자인패턴을 공부하다 보니 어떨 땐 abstract 클래스로, 어떨 땐 interface로 구현을 하는 것을 보았는데 이 둘의 차이를 명확히 잘 몰라서 알아보았습니다. Abstract Class와 Interface 추상클래스 (Abstract class) 자바에서는 하나 이상의 추상 메소드(abstract method)를 포함하는 클래스를 가리켜 추상 클래스(abstract class)라고 합니다. 여기서 추상 메소드란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함입니다. 예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 ..
[Java] Garbage Collection Garbage Collection 모든 객체는 메모리와 같은 시스템 리소스를 사용합니다. 더 이상 필요하지 않은 경우 리소스를 시스템에 반환할 수 있는 체계적인 방법이 필요하며, 그렇지 않으면 "리소스 누수(resource leaks)"가 발생할 수 있습니다. JVM(Java Virtual Machine)은 더 이상 사용되지 않는 객체가 차지한 메모리를 회수하기 위해 자동 가비지 컬렉션을 수행합니다. Java 객체는 프로그램에 할당된 메모리 섹션인 '힙(Heap)'에 생성됩니다. 객체가 더 이상 필요하지 않을 때, 가비지 컬렉터는 이러한 사용되지 않는 객체를 찾아 추적하고 메모리를 확보하기 위해 삭제합니다. 가비지 컬렉션 없이는 힙이 결국 메모리 부족으로 인해 'OutOfMemoryError' 런타임 오..