Skip to content

Latest commit

 

History

History
29 lines (27 loc) · 3.07 KB

File metadata and controls

29 lines (27 loc) · 3.07 KB

자바의 특징

  1. 플랫폼 독립성
    • 자바는 하드웨어,운영체제 등 플랫폼에 종속되지 않는 독립적인 바이트코드로 컴파일되며 자바 가상 기계만 있으면 하드웨어/운여ㅇ체제를 막론하고 자바 프로그램의 실행이 가능하다.
  2. 객체 지향
    • 자바는 객체 지향 언어로서 캡술화, 상속, 다형성을 지원한다. 객체 지향 프로그램은 해결할 과제를 실제 세상의 객체와 객체 간의 상호 관계로 모델링하여 인간의 사고에 가깝게 표현한다.
  3. 클래스로 캡슐화
    • 자바는 객체 지향 언어의 캡술화(encapsulation) 원칙을 철저히 지켜, 변수나 메소드는 반드시 크래스 내에 구현하도록 한다. 클래스에 속하지 않은 변수나 메소드는 있을 수 없다. 자바는 클래스 안에 새로운 클래스, 즉 내부 클래스르 만들 수 있다.
  4. 소스와 클래스 파일
    • 클래스 파일(,class)에는 반드시 하나의 자바 클래스만 들어있다. 그러므로 하느이 자바 소스 파일에 여러 개의 클래스를 작성한 경우 컴파일하면 클래스마다 별도의 클래스 파일이 생성된다.
  5. 실행 모듈
    • 자바 응용프로그램은 한 개의 클래스 파일 또는 다수의 클래스 파일로 구성된다. 다수의 클래스 파일을 jar 파일 형태로 압축하여 배포하거나 실행할 수 있다. 자바의 실행은 main() 메소드에서 시작되며, 하나의 크랠스 파일에 두 개 이상의 main() 메소드가 있을 수 없다. 그러나 각 클래스 파일이 main()메소드를 가지는 것은 상관 없다.
  6. 패키지
    • 서로 관련 있는 클래스는 패키지로 묶어 관리한다. 패키지는 파일 시스템의 폴더와 같은 개념이다. 예를 들어, java.lang.System클래스는 java/lang폴더의 Syste.class파일을 나타내며, 여기서 java.lang을 패키지라고 부른다.
  7. 멀티스레드
    • 하나의 자바 프로그램이 다수의 작업을 처리할 수 있또록 다수의 스레드가 동시에 실행할 수 있는 환경을 지원한다. 보통 멀티스레드 프로그램을 작성하기 위해서는, 운영체제가 멀티스레드를 지원하고 멀티스레드와 관련된 API나 라이브러리를 제공해야만 한다. C/C++등 많은 언어들은 자체적으로 멀티스레드를 지원하지 않아 운영체제의 도움을 받는다. 그러나 자바는 운영체제의 도움 없이 멀티스레드 프로그래밍이 가능하기 떄문에, 멀티스레드를 지원하지 않는 운영체제에서도 자바를 이용하면 멀티스레드 프로그램을 개발할 수 있다.
  8. 가비지 컬렉션
    • 자바 언어는 메모리를 할당받는 기능은 있지만, 메모리를 반환하는 기능은 없다. 이것은 개발자로 하여금 대단히 기쁜 일이며, 프로그래밍의 부담을 대폭 줄여준다. 프로그램 내에 사용되지 않은 메모리(가비지)는 자바 가상 기계의 가비지 커랙션 기능에 의해 자동으로 회수된다.