## JAVA 플랫폼의 3대 구성 요소
1. JVM (Java Virtual Machine)
: JAVA와 OS 사이에서 중개자 역할을 수행
: 컴파일 된 코드가 서로 다른 OS라 할지라도 실행되도록 설계 된 것
: 자바 소스코드(.java)를 만들어서 빌드하면 컴파일 작업을 거쳐 자바 바이트 코드(.class)로 자동 변환 및 생성
➜ JVM이 하는 일
** 바이너리 코드(.class) 읽기
** 바이너리 코드 검증
** 바이너리 코드 실행
** 실행 환경(Runtime Environment)의 규격 제공(필요한 라이브러리 및 기타 파일)
2. JRE (Java Runtime Environment)
: 자바 실행 환경
: 자바 프로그램을 실행 시킬 때 반드시 필요한 라이브러리 및 기타 필수 파일을 가지고 있다.
: Java 언어를 이용하여 개발한 코드를 실행 시키기 위해선 JRE가 필요
** JRE는 그 자체로 특별한 기능을 한다기보다는 JVM이 원활하게 잘 작동할 수 있도록 환경을 맞춰주는 역할을 합니다.
3. JDK (Java Development Kit)
: JRE + 개발을 위해 필요한 도구들을 포함
: Java 언어를 이용하여 개발 및 실행하기 위해서는 JDK가 필요
👍 컴퓨터에서 Java 프로그램을 실행하는데만 포커스를 둔다면, JRE만 설치하면 됩니다.
Java를 이용하여 프로그래밍까지 할 계획이라면 JDK를 설치하면 됩니다.
" JDK는 JRE를 포함하고 있고, JRE는 JVM을 포함하고 있습니다.
따라서, JDK를 설치하면 JRE, JVM이 자동으로 설치가 됩니다. "
✍ 알고가기!!
1. 클래스(Class)
: Object를 만들어내기 위한 설계도 / 틀
: Object를 코드로 구현한 것
: Object를 생성하는데 사용
package java_project;
/**
* 멤버 변수 : 객체가 가지는 속성을 변수로 표현한 것
*/
public class Student {
public int studentID;
public String studentName;
public String address;
/**
* 메서드(method) : 객체의 기능을 구현한 것
*
* 위에서 생성한 학생들의 정보를 통해 기능을 구현하기 위해서 학생 정보를 출력하는 메서드를 생성 학생들의 정보를 출력하기 위해
* showStudentInfo라는 메서드를 생성 메서드 내부에 학생 정보를 출력하는 코드를 작성
*/
public void showStudentInfo() { // 학생 정보 출력
System.out.println("학번 : " + studentID);
System.out.println("이름 : " + studentName);
System.out.println("주소 : " + address);
}
}
2. 객체(Object)
: 구체적 · 추상적 데이터의 단위
: 실제로 존재 하는 것
: 용도는 Object가 가지고 있는 기능과 속성에 따라 다름
3. 인스턴스(Instance)
: 클래스를 new 명령문으로 메모리에 생성한 객체
: 각각의 독립적인 객체
** 클래스로부터 객체를 만드는 과정 ⇢ 클래스의 인스턴스화
** 클래스로부터 만들어진 객체 ⇢ 클래스의 인스턴스
** Instance = Object
👍 프로그래밍으로 표현하려는 실체는 객체입니다.
이러한 실체를 추상화한 설계도는 클래스이며, 클래스를 인스턴스화하여 객체가 생성되는 것입니다.
/* 클래스 */
public class Animal {
...
}
/* 객체와 인스턴스 */
public class Main {
public static void main(String[] args) {
Animal cat, dog; // '객체'
// 인스턴스화
cat = new Animal(); // cat은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
dog = new Animal(); // dog은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
}
}
## 기타 용어
1. 플랫폼
: 프로그램이 실행되는 환경
2. API
: 프로그램 작성을 위한 도구의 모음
[Ex] 함수, 라이브러리 등
3. 라이브러리
: 소프트웨어를 개발할 때 유용하게 사용할 수 있는 변수, 함수 등의 모음
4. 컴파일
: 인간이 사용하는 언어로 작성된 소스 파일을 컴퓨터가 알아들을 수 있는 기계어 코드로 변환해주는 작업