본 내용은 남궁성님의 Java의 정석 3판의 내용을 요약하고 저의 생각을 정리한 것입니다.
Java란?
JAVA를 처음 접한다면 자바는 객체지향 언어라는 것만 알아 두는 것이 좋을 것 같다.
Java의 역사
Java는 가전제품에 탑재될 소프트웨어의 운영체제를 개발하기 위해 만들어진 언어라고 한다. 당시 C++라는 언어를 사용하려 했으나 C++은 만족스럽지 못했나 보다...
그렇다고 언어를 새로 만드나요?
Java의 특징
- 운영체제에 독립적이다.
기존 언어는 한 운영체제에 맞게 개발된 프로그램을 다른 종류의 운영체제에 적용하기 어려웠다. 하지만 Java는 JVM이라는 것을 통해 이를 해결했다. 자세한 내용은 뒤에서 다루겠다. - 객체지향 언어이다.
객체지향 개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향 언어라고 평가된다. - 비교적 배우기 쉽다(?)
다른 객체지향 언어를 깊게 배운 적이 없어서 솔직히 모르겠지만 Java는 객체지향 언어로써의 장점과 편의성을 잘 활용할 수 있게 설계되었다. - 자동 메모리 관리 - Garbage Collection
메모리(보통 RAM을 말한다)를 자동으로 관리해준다. 자세한 내용은 나중에 다루겠다. - 네트워크와 분산처리를 지원한다.
Java는 다양한 라이브러리(Java API)를 지원하는데 네트워크 프로그래밍 관련 라이브러리를 통해 짧은 시간에 네트워크 관련 프로그램을 개발할 수 있다. - 멀티스레드를 지원한다.
멀티스레드는 사용되는 운영체제에 따라 구현 방법도 상이하고, 처리 방식도 다르다. 하지만 Java는 시스템과 관계없이 구현 가능하다. - 동적 로딩을 지원한다. - Dynamic Loading
Java로 작성된 애플리케이션은 여러 개의 클래스로 구성되어 있다. 여기서 동적 로딩을 통해 필요한 시점에 필요한 클래스를 로딩하여 사용할 수 있다는 장점이 있다. 자세한 내용은 나중에 다루겠다.
JVM
'Java virtual machine'의 약어로 직역하면 '자바를 실행하기 위한 가상 기계'이다. 쉽게 말해 Java를 실행하기 위한 프로그램이라고 생각하면 된다.
JVM이 하는 역할은 Java 애플리케이션 실행이다. 프로그램을 실행한다는 것은 결국 하드웨어 자원을 사용한다는 것이고 이는 운영체제에 의해 관리된다. 운영체제가 다르다면 이를 사용하는 애플리케이션의 코드 또한 다르다. 하지만 JVM을 한 번 거쳐 실행되기 때문에 운영체제에 종속되지 않는다. 하지만 JVM 자체는 운영체제마다 다른 JVM을 사용해야 한다.
'Java' 카테고리의 다른 글
추상 메서드가 2개인 함수형 인터페이스 (2) | 2023.07.20 |
---|