Java (5) 썸네일형 리스트형 [JAVA] 가비지 콜렉션 (Garbage Collection, GC) 1. Garbage Collection(GC)이란?자바의 메모리 관리 방법 중의 하나로 JVM(자바 가상 머신)의 Heap 영역에서 동적으로 할당했던 메모리 중 참조되지 않는 객체를 모아 주기적으로 제거하는 프로세스를 말한다.C / C++ 언어에서는 수동으로 메모리 할당과 해제를 일일이 해줘야 했었다. Java에서는 가비지 컬렉터가 메모리 관리를 대신 해주므로 한정된 메모리를 효율적으로 사용할 수 있게 하고, 개발자 입장에서는 개발에만 집중할 수 있다는 장점이 있다.그러나 자동으로 처리해준다고 해도 메모리가 언제 해제되는 지 정확하게 알 수 없어 제어하기 힘들며, GC가 동작하는 동안에는 프로그램 실행을 멈추기 때문에 오버헤드가 발생되는 문제점이 있다.이를 Stop-The-World라고 한다. GC가 작.. [JAVA] JVM 메모리 구조(Runtime Data Area) + JVM에 관한 이전 포스팅 [JAVA] JVM(Java Virtual Machine)1. JVM(Java Virtual Machine)이란?자바 코드로 작성된 프로그램을 실행하면 이것을 컴퓨터가 이해할 수 있고, 어떤 운영체제에서도 실행 될 수 있는 기계어로 변환해주는 것이 바로 JVM이다.즉 운영체제zisooya.tistory.com 이전 포스팅에서는 JVM의 작동 원리와 대략적인 구조에 대해 알아보았고, 이번에는 JVM의 메모리인 Runtime Data Area에 대해 자세히 알아보도록 하자.1. Runtime Data Area 구조 런타임 데이터 영역은 JVM의 메모리 영역으로 Java 애플리케이션을 실행 시 사용되는 데이터들을 동적으로 적재하는 영역이다.런타임 데이터 영역은 다음과 같이 크게 .. [JAVA] JVM(Java Virtual Machine) 1. JVM(Java Virtual Machine)이란?자바 코드로 작성된 프로그램을 실행하면 이것을 컴퓨터가 이해할 수 있고, 어떤 운영체제에서도 실행 될 수 있는 기계어로 변환해주는 것이 바로 JVM이다.즉 운영체제에 종속받지 않고 CPU가 자바 프로그램을 실행할 수 있는 환경을 만들어주는 소프트웨어라고 할 수 있다.JVM은 또한 OS로부터 메모리를 할당 받고, Garbage Collectoion(사용하지 않는 메모리를 자동으로 회수)을 통해 자동으로 메모리 관리를 해준다는 특징을 가지고 있다.이러한 JVM의 내부 구조와 동작 방식을 알면 성능 최적화나 리팩토링을 하는 데 매우 도움이 된다. 그렇다면 JVM은 어떤 방식으로 작동하여 Java 코드로 작성된 프로그램을 기계어로 변환하고 실행시키는 지 구.. [Java] 람다식의 개념, 문법 1. 자바의 람다식은 왜 등장했을까?람다식은 주로 코드를 간결하게 작성하고 함수형 프로그래밍을 지원하기 위해 등장했다. 기존의 자바 코드에서는 익명 클래스를 사용하여 함수형 인터페이스를 구현할 수 있었지만, 이는 코드가 상당히 길어지고 가독성이 떨어지는 문제가 있었다. 람다식은 이러한 문제를 해결하기 위해 자바 8에서 도입되었다.2. 람다식과 익명 클래스는 어떤 관계가 있을까? - 람다식의 문법은 어떻게 될까?람다식은 익명 함수의 한 형태로 볼 수 있다. 익명 클래스는 인터페이스를 구현하는 클래스의 인스턴스를 생성할 때 사용되고, 람다식은 함수형 인터페이스의 구현을 간결하게 표현하는 방법이다. 즉, 람다식은 익명 클래스를 사용하여 함수형 인터페이스를 구현하는 것보다 더 간단하고 직관적인 문법을 제공한다... [Java] 어노테이션(Annotation)의 개념과 직접 정의하는 방법 어노테이션을 사용하는 이유 (효과) 는 무엇일까?자바에서 어노테이션(annotation)은 소스 코드에 메타데이터를 추가하는 방법이다. 이러한 메타데이터는 컴파일러나 런타임 시에 특정 작업을 수행하도록 정보를 전달하는 데 사용된다. 이를테면, 어노테이션을 사용하여 컴파일러에게 코드의 유효성을 확인하도록 지시하거나, 런타임에 특정 작업을 수행하도록 지시할 수 있다.어노테이션의 사용 이유와 효과는 다음과 같다.코드 문서화: 어노테이션을 사용하여 코드에 메타데이터를 추가함으로써, 코드를 문서화하고 다른 개발자들에게 코드의 의도나 사용 방법을 명확하게 전달할 수 있다.컴파일 타임 체크: 어노테이션을 사용하여 컴파일러에게 특정한 규칙을 검사하도록 지시할 수 있다. 예를 들어, @Override 어노테이션을 사용하.. 이전 1 다음