자바의 정석 1장 - 자바를 시작하기 전에

청포도봉봉이·2023년 10월 30일
0

자바의 정석

목록 보기
1/16
post-thumbnail

자바(Java Programming Language)

자바란?

  • 자바는 썬 마이크로 시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다.

특징

  • 운영체제(OS)에 독립적이다.
    • 다양한 기종의 컴퓨터와 운영체제가 있는 인터넷 환경에 적합한 언어이다.
    • 풍부한 클래스 라이브러리(Java API)를 제공
  • 객체지향 언어
    • 상속, 캡슐화, 다형성이 잘 적용되어 있다.
  • 배우기 쉽다.
  • 자동 메모리 관리
    • 가비지 컬렉터(garbage collector)가 자동적으로 메모리를 관리해준다.
  • 네트워크와 분산처리를 지원한다.
  • 멀티쓰레드를 지원한다.
  • 동적 로딩 (Dynamic Loading)을 지원한다.
    • 자바가 실행시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다.

JVM

  • 컴퓨터를 사용해서 자바를 실행하기 위한 가상 컴퓨터
  • 자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.

Java 애플리케이션

java 애플리케이션
JVM
OS(Windows)
컴퓨터(하드웨어)

Java 애플리케이션은 JVM을 한번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석(interpret)되기 때문에 속도가 느리다는 단점을 가지고 있다.
그러나 요즘엔 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러와 향샹된 최적화 기술이 적용되어서 속도의 격차를 많이 줄였다.

Java 애플리케이션은 JVM하고만 상호작용을 하기 때문에 OS와 하드웨어에 독립적이라 다른 OS에서도 프로그램의 변경없이 실행이 가능한 것이다.


일반 애플리케이션

일반 애플리케이션
OS(Windows)
컴퓨터(하드웨어)

JDK (Java Development Kit)

JDK를 설치하면 자상가상머신(JVM)과 자바클래스 라이브러리(Java API)외에 자바를 개발하는데 필요한 프로그램들이 설치된다.

JAVA bin 디렉토리에 있는 주요 실행 파일들

  • javac.exe: 자바 컴파일러, 자바소스코드를 바이트코드로 컴파일한다.
  • java.exe: 자바 인터프리터, 컴파일러가 생성한 바이트코드를 해석하고 실행한다.
  • javap.exe: 역어셈블러, 컴파일된 클래스파일을 원래의 소스로 변환한다.

참고

  • JDK: 자바개발도구(Java Development Kit) =
  • JRE: 자바실행환경(Java Runtime Environment), 자바로 작성된 응용프로그램이 실행되기 위한 최소환경.
  • JDK = JRE + 개발에 필요한 실행파일(javac.exe 등)
  • JRE = JVM + 클래스라이브러리(Java API)

자바프로그램의 실행과정

c:\jdk1.8\work>java Hello
public class Hello {
	public static void main(String[] args) {
    
	}
}
  1. 프로그램의 실행에 필요한 클래스(*.class파일)를 로드한다.
  2. 클래스파일을 검사한다.(파일형식, 악성코드 체크)
  3. 지정된 클래스(Hello)에서 main(String[] args)를 호출한다.

main메서드의 첫 줄부터 코드가 실행되기 시작하여 마지막 코드까지 모두 실행되면 프로그램이 종료되고, 프로그램에서 사용했던 자원들은 모두 반환한다.

profile
서버 백엔드 개발자

0개의 댓글