본문 바로가기

Java/자바 기초

1. 자바를 시작하기 전에

자바의 특징

  1. 운영체제에 독립적이다.
    • 일종의 애뮬레이터인 자바가상머신(JVM)을 통해서 가능하다.
    • 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.
  2. 객체지향언어이다.
    • 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어이다.
  3. 자동 메모리 관리(Garbage Collection)
    • 자바로 작성된 프로그램이 실행되면, 가비지컬렉터(garbage collector)가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다.
  4. 네트워크와 분산처리를 지원한다.
    • 다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.
  5. 멀티쓰레드를 지원한다.
    • 일반적으로 멀티쓰레드(multi-thread)의 지원은 사용되는 운영체제에 따라 구현방법도 상이하며, 처리 방식도 다르다. 그러나 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며, 관련된 라이브러리(Java API)가 제공되므로 구현이 쉽다.
    • 여러 쓰레드에 대한 스케쥴링(scheduling)을 자바 인터프리터가 담당하게 된다.
  6. 동적 로딩(Dynamic Loading)을 지원한다.
    • 자바는 동적 로딩을 지원하기 때문에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다.
    • 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 된다.

 

자바 가상 머신(JVM)

  • Java Virtual Machine을 줄인 것으로 직역하면 ‘자바를 실행하기 위한 가상 기계’이다.
  • 자바로 작성된 애플리케이션은 모두 JVM에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.

  • Java 애플리케이션은 JVM을 한 번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석(interpret)되기 때문에 속도가 느리다는 단점이 있다.
  • 일반 애플리케이션은 OS와 바로 맞붙어 있기 때문에 OS종속적이다.
  • 반면, JAVA 애플리케이션은 JVM하고만 상호작용을 하기 때문에 OS와 하드웨어에 독립적이다.

 

자바 개발도구(JDK)

  • 자바로 프로그래밍을 하기 위해서는 먼저 JDK(Java Development Kit)를 설치해야 한다.
  • JDK를 설치하면, 자바가상머신(Java Virtual Machine, JVM)과 자바클래스 라이브러리(Java API)외에 자바를 개발하는데 필요한 프로그램들이 설치된다.
  • JDK1.5부터 Java 5라고 부르기 시작했는데, JDK 1.7은 Java 7, JDK1.8은 Java 8이라고 부르기도 한다.
  • 편의를 위해 JDK의 bin 폴더를 환경변수 path에 등록하는 것이 좋다.
  • 이 폴더에는 자바로 프로그램을 개발하는데 필요한 실행파일들이 들어있는데, 이 폴더를 path에 등록해 놓으면 실행파일을 실행할 때 일일이 경로를 입력하지 않아도 되어서 편리하다.

 

자바 프로그램의 실행과정

  • 자바 컴파일러(javac.exe)를 사용해서 자바 소스 파일(.java)을 바이트 코드 파일(.class)로 생성한다. 바이트 코드 파일(.class)을 기계어로 변환하기 위해 자바 가상 기계(java.exe)를 사용해 실행한다.

  • ‘public static void main(String[] args)’는 main메서드의 선언부인데, 프로그램을 실행할 때 ‘java.exe’에 의해 호출될 수 있도록 미리 약속된 부분이므로 항상 똑같이 적어주어야 한다.
  • 하나의 Java 애플리케이션에는 main 메서드를 포함한 클래스가 반드시 하나는 있어야 한다. main 메서드는 Java애플리케이션의 시작점이므로 main 메서드 없이는 Java 애플리케이션은 실행될 수 없이 때문이다.

 

주석

  • 주석을 이용해서 프로그램 코드에 대한 설명을 적절히 덧붙여 놓으면 프로그램을 이해하는 데 많은 도움이 된다.
  • 범위 주석: ‘/’와 ‘/’ 사이의 내용은 주석으로 간주된다.
  • 한 줄 주석: ‘//’부터 라인 끝까지의 내용은 주석으로 간주된다.
  • 컴파일러는 주석을 무시하고 건너뛰기 때문에 프로그램의 성능이 떨어지는 일은 없다.

'Java > 자바 기초' 카테고리의 다른 글

6. 객체지향 프로그래밍 I  (0) 2022.03.11
5. 배열  (0) 2022.03.11
4. 조건문과 반복문  (0) 2022.03.11
3. 연산자  (0) 2022.03.11
2. 변수  (0) 2022.03.11