JAVA

JAVA

[JAVA] JAVA GC(Garbage Collection)

GC (Garbage Collection) 이란? 자바 가비지 컬렉션(Garbage Collection, GC)은 자바 가상 머신(Java Virtual Machine, JVM)에서 동작하는 메모리 관리 기법 중 하나다. 이는 프로그램에서 동적으로 할당된 메모리 중에서 더 이상 사용되지 않는 객체(가비지)를 자동으로 탐지하고 제거하여 메모리 누수를 방지하고 메모리 사용량을 최적화하는 역할을 한다. GC (Garbage Collection)가 필요한 이유? 메모리 누수 방지 프로그램에서 객체를 생성하면, 해당 객체는 동적으로 할당된 메모리 영역에 저장된다. 이후 해당 객체를 사용하지 않더라도, 개발자가 명시적으로 메모리를 해제하지 않는다면 해당 객체가 차지하는 메모리는 계속 유지된다. 이러한 상황이 지속되..

JAVA

[JAVA] JAVA 메모리 영역과 JVM 구조 - Stack, Heap, Method

프로그래머라면 한 번쯤은 JAVA 언어를 통해서 코드를 작성해봤을 것이다. 하지만, 내가 작성한 JAVA Code 가 어떤 식으로 작동하는지 정확하게 알고 있는 프로그래머는 많지 않을 것이다. 그럼 JAVA 가 어떤식으로 작동하는지 알아보자. 자바에서 실행 과정을 단계별로 나눈다면 크게 컴파일 타임(Compile Time), 클래스 로딩 타임(Class Loading Time), 런타임(Run Time)으로 나눌 수 있다. 컴파일 타임은 소스코드를 작성한 후 javac와 같은 컴파일러를 사용해 . java 파일을. class 파일(바이트 코드)로 컴파일하는 단계이다. 클래스 로딩 타임은 JVM이 클래스 파일을 읽어 메모리에 로딩하는 단계이다. 이 과정에서 클래스를 검증하고, 필요한 메모리 공간을 할당하고..

JAVA

[JAVA] equals와 ==의 차이점

자바에서 일반적인 데이터의 비교는 == 연산자를 사용한다. 그리고 String 문자열의 값을 비교할때에는 equals() 라는 메소드를 사용하여 비교한다. "equals" 와 "==" 는 어떠한 차이가 있을까? equals 는 데이터 값을 비교해주고, == 는 주소값을 비교해주는 연산자이다. 단순하게 말하면 "==" 연산자는 int, boolean 과 같은 primitive type에 대해서 비교해준다. String 과 같은 reference type 에 대해서는 주소값을 비교한다. String과 같은 reference type 을 생성할 때에는 두가지 방법이 존재한다. 1. 리터럴을 이용한 생성 방식 2. new 연산자를 이용한 생성 방식 리터럴을 사용하게 되면 해당 데이터가 Heap 내부에 있는 st..

JAVA

[JAVA] StringTokenizer

StringTokenizer 클래스는 문자열을 사용자가 지정한 구분자로 문자열을 쪼개주는 클래스이다. 해당 규칙으로 쪼개어진 문자열을 Token 이라고 부른다. StringTokenizer 클래스는 java > util 패키지 내에 속해있다. 그리하여 해당 클래스를 사용해주려면 import java.util.StringTokenizer; 를 기입해줘야한다. 기본적인 아이디어를 도식화 해보면 아래와 같다. "banana apple mango kiwi" 라는 단어가 있고 해당 문자열을 "*" 로구분하여 나눠준다는 아이디어이다. 즉 결과는 "banana", "apple", "mango", "kiwi" 가 나올 것이다. import java.io.*; import java.util.*; public class ..

ssh9308
'JAVA' 카테고리의 글 목록