충분히 쌓여가는
Java Programming Language 본문
자바란
- 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 |