본문 바로가기

Java

[Java] 자바란

Java의 정석 3rd Edition을 읽고 정리한 글입니다.

자바란?

썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어이다.

 

특징

1. 운영체제에 독립적이다.

   일종의 애뮬레이터인 JVM을 통해 하드웨어와 통신하기 때문에 가능하다.

   운영체제마다 서로 다른 버전의 JVM을 제공하고 있다.

 

2. 객체지향언어이다.

   객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수 객체지향언어이다.

 

3. 비교적 배우기 쉽다.

 

4. 자동 메모리 관리

   가비지 컬렉터가 자동을 메모리를 관리해준다.

 

5. 네트워크와 분산처리를 지원한다.

   관련된 라이브러리를 지원한다.

 

6. 멀티쓰레드를 지원한다.

   관련된 라이브러리를 지원한다.

   여러 쓰레드에 대한 스케줄링도 자바 인터프리터가 담당한다.

 

7. 동적 로딩을 지원한다.

   실행 시 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩해서 사용한다.

   일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 된다.

   

JVM이란

자바를 실행하기 위한 가상머신이다.

 

일반 애플리케이션 코드는 OS만 거치고 하드웨어로 전달되는데 비해 자바 애플리케이션은 OS 거치기 전에 JVM을 거친다.

(따라서 OS에 독립적이다.)

따라서 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행할 때 해석되기 때문에 속도가 느리다는 단점이 있다.

요즘엔 컴파일된 자바코드(바이트코드)를 바로 하드웨어의 기계어로 변환해주는 JIT 컴파일러와 향상된 최적화 기술이 적용되어서 속도문제가 개성되고 있다.

 

자바 프로그램 작성하기

Hello, World 예제 코드는 다음과 같다.

 

class Hello {
	public static void main(String[] args) {
    	System.out.println("Hello, World");
    }
}

실행과정은 다음과 같다.

 

더보기

Hello.java              ->            Hello.class 생성                  ->            Hello, World 출력

              javac.exe로 컴파일                            java.exe로 실행

* 소스파일의 이름은 public class의 이름과 일치해야 한다.

  만약 소스파일 내에 public class가 없다면 소스파일의 이름은 소스파일 내의 어떤 클래스의 이름으로 해도 상관없다.

 

 

'Java' 카테고리의 다른 글

[Java] java.lang 패키지 & 유용한 클래스들  (0) 2020.11.15
[Java] 예외처리  (0) 2020.11.15
[Java] 객체지향 프로그래밍  (0) 2020.11.15
[Java] 배열  (0) 2020.11.11
[Java] 변수  (0) 2020.11.11