728x90
자바 둘러보기
자바의 역사
제임스 고슬링을 필두로 1995년에 개발되었다. 처음에는 가전 제품 내 탑재하는 프로그램을 마들기 위해 자바가 개발되었다.
현재는 Java 17버전이 가장 최근 버전이다(2021 릴리즈)
한국에서의 자바
한국은 자바 공화국이라고 불릴정도로 자바를 많이 사용한다
전자 정부 표준 프레임 워크
- 한국정보화진흥원에서 만든 웹 기반 어플리케이션 프레임 워크
- 자바, 스프링 및 자바의 유명 라이브러리(Jackson, Apache Commons 등)을 기반으로 구성됨
자바 활용 사례
- 웹 프로그래밍
- 안드로이드 어플리케이션
- 데이터베이스 처리
- 빅데이터 분산 및 처리(스파크)
자바 파일과 컴파일
- 소스코드 작성(test.java)
- 컴파일러가 test.java를 test.class로 변환(JVM이 인식할 수 있는 Binary File)
- JVM으로 프로그램 실행
자바와 JVM
- JVM = Java Virtual Machine = 자바를 실행하기 위한 가상 머신
- Java 어플리케이션은 JVM 위에서 동작하기 때문에 OS에 종속적이지 않음
- 스택 기반의 가상 머신으로 클래스 로더, 실행 엔진, Runtime Data Area로 구성되어 있음
클래스 로더
- .class 파일을 로드하고, jar 파일 내 저장된 클래스를 JVM위에 탑재하는 역할
실행 엔진
- 인터프리터와 JIT(just in time) 으로 클래스를 실행
- 가비지 컬렉터로 사용하지 않는 메모리를 찾아 삭제
Runtime Data Area
- 프로그램 수행을 위해 os에서 할당받은 메모리 공간
JVM 내 Heap 영역
객체를 저장하는 가상 메모리 공간으로 new 연산자로 생성되는 객체를 저장
New/Young Generation
- 가비지 컬렉터에 의해 사라질 수 있음
Eden
- 객체가 최초로 생성되는 공간
- 해당 영역이 가득차면 가비지 컬렉터가 동작
Survivor 0, 1
- Eden 에서 참조되는 객체가 저장되는 공간
Old Gneration
- 가비지 컬렉터에 의해 사라질 수 있음
- New/Young Generation 에서 살아남은 객체가 저장됨
Presentation Generation
- 생성된 객체의 주소값, meta 정보가 저장되는 공간
자바 특징
객체 지향적인 언어
- Object 클래스에서 모든 클래스가 파생
플랫폼 독립적
- JVM 위에서 동작하기 때문에 os에 종속적이지 않음
메모리 관리
- 가비지 컬렉터가 존재하기 때문에 직접 메모리 할당 / 해제를 해주지 않아도 된다
반응형
'Java 개념' 카테고리의 다른 글
다형성 (0) | 2024.02.19 |
---|---|
Stream API (1) | 2024.02.19 |
JavaBean과 액션태그 (0) | 2023.09.05 |
JDBC 연동 (0) | 2023.09.04 |
Stack과 Queue (0) | 2023.08.23 |