자바 이해 / JVM이란? / 변수와 상수 /
자바의 이해
- A 언어
- 첫 개발언어라는 의미에서 A Programming Language의 약자입니ㅏㄷ.
- 발표년대 : 1960
- 핵심기능 : 입/출력, 문맥
- 프로그램을 만들기위해 기본적으로 필요한 기능 입/출력, 문맥 기능만 구현가능한 언어
- B 언어
- Bell 사에서 개발해서 B언어
- 발표년대 : 1960
- 핵심기능 : A언어 기능 + 기계식 데이터 타입, 연산기능, 메소드
- A언어 기능에 데이터를 담을 수 있는 타입이 생기고, 데이터를 연산하고 묶어서 관리할 수 있는 메서드 구현이 가능한 언어
- C 언어
- B 언어에 비해 더 좋은 언어라는 의미로 알파벳 B 다음인 알파벳 C를 따서 C언어
- 발표년대 : 1970
- 핵심기능 : B언어 기능 + 자료형 데이터 타입, 자료구조
- B언어 기능에 다양한 데이터 타입을 정의하고 자료구조에 담을 수 있는 언어
- 자바 언어
- 어디서나 마시는 커피처럼 어디서나 동작 가능한, 자바 커피에서 이름을 따서 만든 Java 언어
- 발표년대 : 1990’
- 핵심기능 : C언어 기능 + 공통 실행환경, 클래스, 객체
- C언어 기능에 여러 기기에서 실행가능하도록 도와주는 공통 실행환경, 그리고 데이터와 메서드를 담는 클래스를 통해 객체를 만들 수 있는 언어
- Java 는 A언어의 기능 + B언어의 기능 + C언어의 기능에 JAVA언어의 기능을 추가한 언어 입니다.
- 기능은 포함하지만, 각 언어별로 기능을 구현한 방법은 각기 다릅니다.
- 기능은 포함하지만, 각 언어별로 기능을 구현한 방법은 각기 다릅니다.
JVM이란?
1. JVM 개념
- JVM (Java Virtual Machine)의 약자로 자바 가상 머신이라는 뜻을 가지고 있습니다.
- 가상 머신이란 가상의 기기를 만들어주는 것을 의미합니다.
- 다시 말해서, 여러가지의 기기 위헤서 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는 것을 의미합니다.
2. JVM 구성
- 바이트 코드
- 자바 프로그램 변환코드
- 내가 작성한 코드가 운영체제가 읽을 수 있는 코드(바이트 코드)로 자바 컴파일러가 변환한 코드
- 자바 컴파일러란
내가 작성한 자바코드(.java파일)를 운영체제가 읽을 수 있는 바이트코드(.class파일)로 변환하는 변환기
- 자바 컴파일러란
- 인터프리터
- Java.class 코드 해석기
- 운영체제가 읽은 바이트코드를 기기가 실행할 수 있는 기계어로 번역해줍니다.
- Java.class 코드 해석기
- JIT 컴파일러
- 빠른 Java.class 코드 해석기
- 인터프리터의 효율을 높여주는 서포터 해석기
- 빠른 Java.class 코드 해석기
- 메모리 영역
- Java 데이터를 저장하는 영역
- 운영체제로부터 JVM이 할당받은 메모리 영역
- Java 데이터를 저장하는 영역
- 클래스로더
- Java.class 바이트 코드를 메모리 영역에 담는 운반기
- JVM으로 class(바이트 코드)를 불러와서 메모리에 저장합니다.
- Java.class 바이트 코드를 메모리 영역에 담는 운반기
- 가비지 컬렉터
- Java 쓰레기 청소기
- 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기
- Java 쓰레기 청소기
3. Java 환경 설정
- JRE
- JRE (Java Runtime Environment) 즉, 자바 실행 환경이라는 뜻을 가지고 있스비낟.
- 하지만 JRE(JVM)만 있다면 Java 프로그램을 실행만 시킬 수 있습니다.
- JRE는 .class 파일만 실행 가능합니다.
- JDK가 Javac 명령을 통해 .Java파일을 실행 가능한 .class 파일로 변환해 줍니다.
- JDK
- JDK (Java Development Kit) 즉, 자바 개발 키트라는 뜻을 가지고 있습니다.
- JDK는 JRE(JVM)의 기능을 포함하고 있습니다.
- JDK는 .java 파일들을 .class 파일들로 변환해주는 Java Compiler(Javac) 기능이 있습니다.
- JDK는 코드를 디버깅하는 jdb 등의 기능이 있습니다.
- de + bug : 벌레를 없앤다. 즉, 코드를 면밀히 살피면 안 좋은 코드를 없애는 기능을 의미합니다.
- JDK 디버깅 기능
- JDK의 Jdb 기능을 통해서 실행중인 프로그램의 코드 실행을 따라다니며 볼 수 있습니다.
- java 프로그램을 실행한다는 것은 곧 Java 코드를 한줄씩 실행하면서 명령을 수행하는 것을 의미합니다.
- 우리가 개발한 코드들을 한줄씩 객체와 메소드를 수행하면서 변수들도 변하는 과정을 우리가 볼 수 있도록 JDK(자바 개발 키트)는 코드를 따라가면서 변수를 볼 수 있는 디버깅 기능을 제공합니다.
- 내가 작성한 코드 라인에 중단점을 설정하고 디버그 모드로 프로그램을 실행하면, 프로그램이 중단점의 코드라인을 수행할 때 프로그램 흐름이 일시정지 되며 변수들을 볼 수 있게 도와줍니다.
- 디버깅 = 중단점 일시정지 + 코드 라인단위 수행
'JAVA' 카테고리의 다른 글
[JAVA] - 자바 2차원 배열 (0) | 2024.01.06 |
---|---|
[JAVA] - 자바 기초 (0) | 2024.01.03 |
[JAVA] - 문자열 한 글자씩 분리하는 방법 (1) | 2023.12.04 |
[JAVA] - 문자열 치환 메소드 (0) | 2023.12.04 |
[JAVA] - 변수 타입 확인 방법 (0) | 2023.12.04 |