자바의 특징

Minuuu·2022년 12월 23일
4

Java

목록 보기
1/18

자바의 특징

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

기존의 언어는 운영체제에 맞게 개발된 프로그램을 다른 종류의 운영체제에 적용하기 위해 많은 노력이 필요했지만 자바는 일종의 에뮬레이터인 자바가상머신(JVM)을 통해서 가능한 것인데, 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달
그래서 자바로 작성된 프로그램은 운영체제와 하드웨어에 관계없이 실행가능해
"한번 작성하면 어디서나 실행된다"(Write once run anywhere)고 표현

2. 객체지향언어

자바는 프로그래밍의 대세인 객체지향프로그래밍 언어 중 하나로 객체지향 개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향 언어

3. 자동 메모리 관리(Garbage Collection)

자바로 작성된 프로그램이 실행되면 가비지 컬렉터가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다

4. 네트워크와 분산처리 지원

분산처리 : 하나의 컴퓨터 또는 서버에서 처리하는 방식을 넘어 네트워크에서 원격 컴퓨터와 통신하면서 하나의 목적을 위해 여러 서버에서 연산을 처리하도록 만든 시스템

다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원

5. 멀티쓰레드 지원

자바에서 개발되는 멀티쓰레드 프로그램은 시스템과의 관계없이 구현가능하며 관련 라이브러리(Java API)가 제공되므로 구현이 쉽다.
여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당

6. 동적 로딩(Dynamic Loading) 지원

자바 애플리케이션은 여러개의 클래스로 구성되어있다 자바는 동적로딩을 지원하기에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다 그 외에도 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 되며, 애플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로 처리 가능


의문점

  1. JVM을 통해 운영체제에 독립적이라면 JVM은 정확히 무엇인가? >> JVM학습하기
  2. 가비지 컬렉터가 자동적으로 메모리를 관리해주는데 정확히 어떤식으로 관리를 하는가?
  3. 네트워크, 분산처리, 멀티쓰레드, 동적로딩이란 무엇이고, 어떻게 지원하는가?
profile
꾸준히 한걸음씩 나아가려고 하는 학부생입니다 😄

1개의 댓글

comment-user-thumbnail
2022년 12월 23일

깔끔한 요약이네요 잘 읽고 갑니다~

답글 달기