본문 바로가기

자바

[Java] Java 메모리 구조(Runtime Data Area) (작성중) 온라인 스터디 1주차 JVM이란? 문항에서 조금만 더 알아보자! 하는 생각으로 정리하는 Runtime Data Area!! GC랑 같이 내용 정리한다. 자바 메모리 구조(Runtime Data Area) 란? 1. 정의 - Runtime Data Area = JVM이 프로그램 수행을 위해 OS로부터 할당받은 메모리 영역 - 자바 소스 코드를 ---- 컴파일 ----> byte code 로 바꾸고, 이 바이트 코드를 JVM으로 실행하는 과정에서, 코드가 Runtime Data Area 영역에서 실행되는데, - 이때, OS가 JVM에 할당한 메모리 영역에 맞게 코드가 분배되고 실행된다. 2. 구분 - Runtime Data Area는 [스레드 별로 생성되는 메모리 영역] + [모든 스레드가 공유하는 메모리 .. 더보기
[Java] 가비지 컬렉션(Garbage Collection) 여기저기서 나오는 메모리, 자바에서 말하는 가비지, GC 정리하자! 가비지 컬렉션(Garbage Collection) 정의 1. 가비지(Garbage) - 정리되지 않은 메모리, 유효하지 않은 메모리 주소 - 주소를 잃어버려 사용할 수 없는 메모리 - 앞으로 사용하지 않고, 메모리를 가지고 있는 객체도 포함 - 프로그래밍 언어에서Danling Object / Java에서 Garbage라고 부른다. public class Main { public static void main(String[] args) { int[] arr = new int[3]; arr[0] = 0; arr[1] = 1; arr[2] = 2; arr = new int[] {8, 9, 10}; } } 위의 부분에서, arr 이라는 배열이 .. 더보기
[Java] 변수 종류 - 클래스 변수 / 인스턴스 변수 / 지역 변수 한 번씩 헷갈리는 Java 변수 종류 정리 ! 구분 변수 종류 특징 멤버 변수 클래스 변수 1. static 을 붙여서 만듦 2. 객체 생성 없이도 사용 가능 [사용 이유] 1. 인스턴스에 따라 변하지 않는(불변의) 값이 필요할 경우 2. 인스턴스를 생성할 필요가 없는 값을 원하는 경우 3. 변수의 변경 사항을 모든 인스턴스가 공유해야 하는 경우 인스턴스 변수 객체를 생성해야만 사용 가능 지역변수 메서드 안에서만 선언 및 해당 메서드 안에서만 사용 가능 참고 - https://jishushu.tistory.com/11 더보기
[Online Study 1주차] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. [학습 주제] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. [학습 목표] 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기 [학습 내용] JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM이란 무엇인가 1. JVM의 정의 - Java Virtual Machine으로, 자바를 실행하기 위한 가상 기계(컴퓨터) 2. Java의 특징 - OS에 종속적이지 않고 실행되기 위해서는 OS 위에서 Java를 실행 시킨 것이 JVM -> OS에 종속 받지 않고 CPU가 Java를 인식 및 실행할 수 있게 하는 가상 컴퓨터 컴파일 과정 - '컴파일(Compile)'이란, 개발자가 작.. 더보기