프로그램
프로그램 = 작업 지시서
cpu에게 작업을 지시하는것 = 프로그램
JAVA
Write once, Run everywhere!
제임스 고슬링이 만듬.
자바의 특징
- C++에서 필요한 기능만 포함, 복잡한 기능 삭제
- 객체지향적 : 객체 별로 코드를 작성하고 객체들을 조합하는 설계방법
- 분산처리 지원 : 다양한 네트워크 통신 프로토콜 라이브러리 제공
- 견고
- 안전
- 컴퓨터 구조 중립적 : 바이트코드와 자바 가상기계 때문에
- 이식성
- 멀티스테딩 지원: 여러가지 작업을 동시에 실행
- 동적: 동적으로 라이브러리 링크
자바가상기계
자바 컴파일러는 특정한 컴퓨터가 아닌 가상적인 기계를 위한 코드를 생성한다.
= 어디든지 실행할수 있음!
why?
특정한 컴퓨터가 아닌 중간적인 코드를 생성하고 이것을 해석하여 실행하는 구조로 되어 있기 때문

*자바 컴파일러가 소스코드를 컴파일 하면
바이트코드가 생성된다.
*바이트 코드를 해석하여 실행하는 소프트웨어는
자바 가상 기계이다.
JDK
명칭 : Java Development Kit
자바 프로그램을 개발하는 개발도구
*JRE(Java Runtime Environment)
– JRE는 자바 프로그램을 실행하기 위한 라이브러리, 자바 가상 기계, 기타 컴포넌
트들을 제공한다.
JDK와 JRE의 차이점은 무엇인가?
- JRE는 자바 프로그램을 실행만 시킬 수 있는 환경이고 JDK는 개발도
할 수 있는 환경이다.
JDK = JRE + 컴파일러 + 디버거 +...
JAVA 프로그램 개발 단계

*컴파일러
자바 소스코드를 바이트 코드로 변환
바이트 코드는 확장자가 .class로 끝나는 파일에 저장
명령어 버전 이름은 javac
*클래스적재
바이트 코드 파일을 메모리로 적재
네트워크를 통해 적재될 수도 있다.
*실행
자바 가상 기계가 바이트 코드를 실행
가장 빈번하게 실행되는 부분(HotSpot)에서는 JIT 컴파일러가 바이트 코드를 실제
컴퓨터의 기계어로 직접 변환하여 빠르게 실행