Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

Java Programming Language 본문

Java

Java Programming Language

빌드이너프 2022. 12. 30. 20:38

자바란

  • Sun Microsystems에서 개발하여 1661년 1월에 공식적으로 발표한 개객체지향 프로그래밍 언어
  • 자바의 가장 중요한 특징: 운영체제(OS: Operating System)에 독립적이라는 것
  • 자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행 가능 -> 운영체제에 따라 프로그램을 전혀 변경하지 않고 실행 가능
  • 자바는 다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합한 언어 -> 인터넷의 발전과 함께 많은 사용자 층을 확보할 수 있었다
  • 객체지향개념과 기존의 다른 프로그래밍 언어, 특히 C++의 장점을 채택하는 동시에 잘 사용되지 않는 부분은 과감히 제외 -> 비교적 배우기 쉽고 이해하기 쉬운 간결한 표현이 가능하도록 함
  • 자바는 풍부한 클래스 라이브러리(Java API)를 통해 프로그래밍에 필요한 요소들을 기본적으로 제공

 

자바언어 특징

1. 운영체제에 독립적

  • 기존의 언어: 한 운영체제에 맞게 개발된 프로그램을 다른 종류의 운영쳊데에 적용하기 위해서 많은 노력 필요
  • 자바: 자바가상머신(JVM)을 통해 운영체제나 하드웨어가 아닌 JVM하고만 통신 -> JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 반환하여 전달
  • 자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적이어서 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM 제공

 

2. 객체지향 언어

  • 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어

 

 

3. 비교적 배우기 쉬움

  • 자바의 연산자와 기본구문: C++에서 가져옴
  • 객체지향관련 구문: small talk이라는 객체지향언어에서 가져옴
  • C++과 small talk의 장점은 복잡하고 불필요한 부분은 과감히 제거하여 단순화함, 간결하고 이해하기 쉬운 코드를 작성할 수 있도록함

 

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

  • Garbage Collection가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 됨
  • Garbage Collection가 없다면 프로그래머가 사용하지 않는 메모리를 체크하고 반환하는 일을 수동적으로 처리해야 함
  • 자동으로 메모리를 관리하는 것이 다소 비효율적인 면도 있지만, 프로그래머가 보다 프로그래밍에 집중할 수 있도록 도와줌

 

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

  • 인터넷과 대규모 분산환경을 염두에 둔 까닭인지 풍부하고 다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원함

 

6. 멀티쓰레드 지원

  • 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능
  • 관련된 라이브러리(Java API)가 제공되므로 구현이 쉬움
  • 여러 쓰레드에 대한 scheduling을 자바 인터프리터가 담당하게 됨

 

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

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

 

 

 

참고자료

남궁 성. 『자바의 정석』. 도우출판, 2016. 2~4쪽

 

'Java' 카테고리의 다른 글

변수 variable  (0) 2023.01.06
자바 클래스 작성  (1) 2023.01.06
JVM(Java Virtual Machine)  (0) 2022.12.30
IntelliJ 설치  (0) 2022.12.28
자바 환경설정(Mac에서 JDK 설치)  (1) 2022.12.27