프로그래밍 언어/Java (3) 썸네일형 리스트형 Garbage Collector (GC) 코딩을 하다보면 수 많은 함수 내에서 여러가지 변수와 객체들을 선언 및 생성하여 사용한다.fun main(){ val obj = Something()}class Something{}Java의 객체는 JVM 가상 메모리 영역 중 Heap 영역에 저장이 된다.서버 또는 애플리케이션 등 실행 과정에 있어 수 많은 객체들을 사용하게 되는데 사용 후 더 이상 사용하지 않는, 참조되지 않는 객체들은 메모리 누수(Memory Leak)를 방지하기 위해 개발자가 직접 메모리에서 회수해야 한다.하지만 모든 사람은 실수를 하듯, 모든 객체를 완벽하게 관리하기란 불가능에 가깝다.Java에는 사용하지 않는 객체를 자동으로 메모리에서 회수해주는 Garbage Collector가 존재한다. JVM 메모리다음과 같은 코드를 .. 추상 클래스 우리가 기존에 사용하던 클래스의 구조는 다음과 같다. class A { private val a = 0 public fun method(){...} } 당연히 A 클래스에 대한 객체를 생성할 수 있고, 객체에 대한 메서드 또한 문제 없이 사용할 수 있다. 추상 클래스는? 반면 추상 클래스의 구조는 다음과 같다. 필드 일반 메서드 추상 메서드 abstract class A { // 필드 lateinit var name: String val age = 20 fun normalMethod(){...} // 일반 메서드 abstract fun method() // 추상 메서드 abstract fun method2(){...} // 오류 발생 } A를 추상 클래스, method 함수를 추상 메서드라고 한다. 추상.. [JAVA] 인터페이스 기본 개념 자바를 사용하다보면 인터페이스를 사용할 때가 온다. 그럼 인터페이스는 무엇일까? 인터페이스는 일종의 가이드북, 설계도라고 볼 수 있다. 그렇다면 인터페이스는 왜 필요할까? 인터페이스의 필요성 자바에서는 상속이라는 기능이 있다. 상속을 통해 다양한 동작을 수행할 수 있는 장점을 갖는다. 그러나 다중 상속을 할 경우 여러가지 문제 때문에 다중 상속을 할 수가 없다. 따라서 이를 보완하기 위해 인터페이스로 다중 상속을 대체한다. 인터페이스의 구조 인터페이스의 구조는 다음과 같다. interface Example{ public static final String name = "예제"; public abstract void Test(); public abstract void Test2(int a); } 인터페이스.. 이전 1 다음