[Java] 실행환경 Jvm에 대한 이해
Java의 실행환경인 JVM에 대한 이해
Java 언어
- 처음에는 모의실험에서 실제환경과 유사한 가상환경을 컴퓨터에서 구현하려고 노력하다보니 객체 지향 언어가 탄생하게 되었다.
객체 지향
의 포인트는 세계는 모든 객체(사물)로 이루어져 있고 그에 맞는 특징과 속성을 안다면 유기적으로 연결할 수 있다는 것이다.
우리가 기능별로 구현한 코드에 객체 지향 개념을 적용한다면 그 코드는 가독성이 있고 재사용성이 용이하며 유지보수가 쉽다. - 보통은 App이 OS와 바로 연결되어 있어서 다른 운영체제에 맞게 변경이 어려운데
아래 그림과 같이 Java는 Jvm이라는 가상 컴퓨터를 거쳐서 OS와 하드웨어에 독립적이기 때문에 어떤 운영체제이더라도 변경없이 사용할 수 있다.
Jvm
Java Virtual Machine, java가 실행시킬 수 있는 가상의 기기를 만들어 주는 것
-compiler:
.java
->.class
로 변환한다 (단계와 이유)
-바이트 코드: 운영체제가 읽을 수 있는 코드로 java compiler가 변환한 코드
-인터프리터: 운영체제가 읽은 바이트 코드를 기계어로 번역
-JIT 컴파일러: Java .class 코드 해석기(서포터)
-메모리 영역: java 데이터를 저장함
-클래스 로더:.class
바이트 코드를 불러와서 메모리 영역에 담는 운반기
-가비지 컬렉터: 안쓰는 데이터를 주기적으로 흡수
JDK
Java Development Kit, 자바 개발 키트, JVM과 java 프로그램을 개발할 수 있는 것
(1) compiler: .java
파일들을 .class
파일들로 변환 기능
(2) JRE가 포함됨(자바실행 환경)
(3) 코드를 디버깅(면밀히 살펴볼 코드를 확인)하는 JDB
Main 메소드
자바 프로젝트는 제일 먼저 클래스의 main 메소드를 실행시킨다 = JVM의 약속
- public : (접근) 제어자, public(공공의, 공통의) ->외부에서도 실행시킬 수 있다
- static: 이 프로그램이 시작될 때 무조건 실행하는 메소드 표기
- void: 메서드의 출력값의 데이터 타입(메서드 이름 앞), “아무 것도 없다”-> 출력은 없다
메소드도 Input(매개변수 자리) Output(메서드 이름 앞) 기능을 가지고 있다 (단, 각각 타입이 정해져 있다)
print와 println
print: 줄 바꿈은 하지 않는다 println: 줄 바꿈을 한다
This post is licensed under CC BY 4.0 by the author.