🏹 프로그램(Program)이란?
컴퓨터가 인식할 수 있는 명령어의 나열 (집합)
🏹 Java 프로그래밍 언어의 특징
- 객체지향 프로그래밍 언어(OOP)이다. ⭐
- 운영체제(OS)에 관계 없이 동일한 코드로 동작한다. ⭐
(= 운영체제에 독립적, 이식성이 높다.)
- 다른 언어의 단점(포인터, 메모리 관리)을 보완한 언어로서
능률적이고 명확한 코드를 작성할 수 있으며 사용하기 쉬운 언어이다. ⭐
- 메모리를 자동으로 관리할 수 있다. (Garbage Collection) ⭐
- 동적 로딩을 지원한다.
- 멀티쓰레드를 지원한다.
- 네트워크와 분산환경을 지원한다.
🏹 JVM (Java Virtual Machine)
Java를 실행하기 위한 가상 머신으로, 운영체제(OS)에 관계 없이 독립적으로 동작함
🏹 변수와 메모리 구조
-
Stack 영역 : 프로그램의 전체 실행 흐름을 관리하는 메모리 공간
🌼 Stack의 자료구조 : LIFO
-
Heap 영역 : 프로그램 수행 시 필요한 객체의 생성, 소멸을 반복하는 임시 메모리 공간
🔍 저장된 데이터가 더이상 사용되지 않을 경우 JVM에 의해 자동 소멸
Garbage Collection - 메모리 관리