자바는 객체지향 언어

캡슐화, 상속성, 추상화, 다형성

자바는 JRE (자바실행환경)이 설치되어있는 모든 운영체제에 실행 가능하다.

JRE → Java Runtime Environment

자바 앱 개발하고 실행하기 위한 자바 플랫폼 3대 구성요소

JRE에는 클래스 라이브러리, 클래스 로더, 가상머신 이 포함된다.

런타임환경은 프로그램 실행을 위해 클래스파일을 로드 하고 메모리 및 기타 시스템 리소스에대한 액세스를 확보한다.

자바 메모리는 힙, 스택, 메타스페이스 세가지 구성요소로 이뤄진다.

메타스페이스 → 클래스 정의와 같이 프로그램에서 변화하지 않는 정보를 저장하는 장소.

힙 → 변수 저장 , 동적

스택 → 함수실행, 변수 참조(주소) 를 저장하는 장소 , 정적

JVM → Java Virtual Machine

자바 가상머신 , Java 는 OS에 종속적이지 않다.

종속받지않고 OS위에서 실행하기 위해 JVM이 필요.

Java 소스코드, 즉 원시코드(*.java)는 CPU가 인식을 하지못해

기계어로 컴파일 해줘야한다. JVM 이 인식할수 있는 java bytecode(*.class)로

변환된다.