자바 언어의 특징

자바 언어는 어떤 특성을 가지고 있을까?

#Java


Java 언어와 시스템의 특징

자바 언어와 시스템은 다음과 같은 독특한 특성을 가집니다.

1. 객체지향

  • 자바는 객체 지향 언어로서 클래스 계층 구조, 상속성, 다형성, 캡슐화 등을 지원합니다.

2. 멀티 스레드

  • 자바는 하나의 프로그램에서 다수의 스레드가 동시에 실행할 수 있는 환경을 지원합니다.
  • C, C++ 등 많은 언어들은 자체적으로 멀티스레드를 지원하지 않아 운영체제의 도움을 받지만 자바의 경우 운영체제의 도움 없이 멀티스레드 프로그래밍이 가능합니다.

3. 플랫폼 독립성

  • 자바는 하드웨어, 운영체제 등 플랫폼에 종속되지 않는 독립적인 바이트 코드로 컴파일 됩니다.
  • 자바 가상 기계만 있으면 하드웨어나 운영체제를 막론하고 자바 프로그램의 실행이 가능합니다.

4. 실행 모듈

  • 자바 응용프로그램은 한 개의 클래스 파일 또는 다수의 클래스 파일로 구성됩니다.
  • 자바의 실행은 main 메서드에서 시작되며, 하나의 클래스 파일에 오직 한 개의 main 메서드를 가져야 하지만 다수의 클래스 파일이 각각 main 메서드를 가질 수 있습니다.

5. 클래스로 캡슐화

  • 자바는 객체 지향 언어의 캡슐화(Encapsulation)의 원칙을 철저히 지켜 변수나 메서드는 반드시 클래스 내에 구현해야 합니다.
  • 클래스에 속하지 않은 변수나 메서드는 있을 수 없으며 클래스 안에 새로 클래스,
    즉, 내부 클래스를 만들 수 있습니다.

6. 패키지

  • 서로 관련 있는 클래스를 패키지로 묶어 관리할 수 있습니다.
  • 패키지는 파일 시스템의 폴더 개념과 유사합니다.
  • 예를 들어, java.lang.System 클래스는 java\lang 폴더의 System.class 파일을 나타내며, 여기서 java.lang을 패키지라고 합니다.

7. 소스와 클래스 파일

  • 하나의 자바 소스 파일에는 여러 개의 클래스를 작성할 수 있지만 하나의 클래스 파일에는 반드시 하나의 컴파일된 자바 클래스만이 포함됩니다.
  • 하나의 자바 소스 파일에 여러 개의 클래스를 작성하고 컴파일을 진행하면 클래스마다 별도의 클래스 파일이 생성됩니다.
  • 예를 들어, 아래와 같이 선언 후 컴파일을 진행하면 결과를 통해 확인할 수 있습니다.
public class A {	
    ...
}

class B {
	...
}
class C {
	...
	class D {
        ...
    }
}

/*
위의 A.java 파일을 컴파일하면 A.class B.class C.class 파일이 생성되고 C&D.class 파일이 생성된다.

여기서 클래스 D는 클래스 C 내에 작성된 내부 클래스(Inner Class) 이고
자바 소스 파일 내에 오직 한 클래스만 public으로 선언될 수 있습니다.
또한 public으로 선언된 클래스의 이름과 소스 파일의 이름이 동일해야 합니다.
*/