자바 언어의 특징 & JVM

후투티·2025년 7월 20일

자바의 정석 4판

목록 보기
1/1

자바의 정석 4판이 나와 새로운 마음으로 처음부터 차근차근 읽어보기로 했다.

자바 언어의 특징

1. 운영체제에 독립적

자바 응용프로그램은 운영체제/하드웨어와 통신하는 것이 아니라 JVM과 통신을 한다.

JVM이란?

JVM은 'Java Virtual Machine'으로, 자바를 실행하기 위한 가상 컴퓨터이다.
자바로 작성된 애플리케이션은 모두 JVM에서만 실행된다.

Java 애플리케이션 <-> JVM <-> OS <-> 하드웨어

즉, 자바 애플리케이션이 실행되기 위해서는 JVM이 필요하고,
Java 애플리케이션은 JVM과만 상호작용을 하기 때문에 OS와 하드웨어에 독립적으로 실행 가능한 것이다.

JVM은 어떻게 설치하나?

자바로 프로그래밍을 하려면 먼저 JDK(Java Deveopment Kit)를 설치해야 한다.
이것을 설치하면 자바를 개발하는 데 필요한 프로그램들과 함께 JVM도 설치가 된다!

2. 객체지향 언어, 함수형 언어

상속, 캡슐화, 다형성이 잘 적용된 객체지향 언어이다
(함수형 언어라는 것도 적어주셨지만 설명이 없어 찾아보니 람다와 스트림을 말하는 것이었다. )

3. 자동 메모리 관리

자바로 작성된 프로그램이 실행되면 GC(Garbage Collector 가비지 콜렉터)가 자동으로 메모리를 관리해주기 때문에 프로그래머가 메모리를 따로 관리하지 않아도 된다는 장점이 있다.

4. 멀티쓰레드 지원

멀티쓰레드 = 하나의 프로그램을 사용하면서 여러 작업을 동시에 처리할 수 있도록 하는 것이다.

5. 동적 로딩 지원

동적 로딩 = '프로그램 실행 중에' 필요한 시점에 JVM이 특정 클래스를 메모리로 불러오는 과정
즉, 프로그램 실행시 모든 클래스가 한꺼번에 로딩되는 것이 아니라 특정 클래스가 필요할 때 로딩해서 사용한다.

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

자바 언어는 인터넷을 통해 여러 컴퓨터가 데이터를 주고받을 수 있도록 지원한다.
예를 들어 Socket, URLConnection, HttpURLConnection과 같은 클래스를 활용하면 TCP/IP , HTTP 프로토콜 기반의 네트워크 통신을 구현할 수 있다.
이 덕분에 자바 애플리케이션은 다른 컴퓨터/서버와 데이터를 주고받는 기능을 구현할 수 있다.

또한 자바 애플리케이션의 규모가 커지면, 하나의 애플리케이션으로 모든 기능을 처리하기 어려워진다.
이러한 문제를 해결하기 위해 기능을 작은 단위(서비스 단위)로 분리하고, 이를 여러 서버에 배포하여 동시에 분산적으로 처리할 수 있도록 지원한다.
예를 들어, 우리가 잘 사용하는 Spring Boot는 사용자 관리, 주문, 결제 등 각 기능을 독립적인 애플리케이션으로 구성하여 각 서비스는 REST API를 통해 서로 통신할 수 있게 해준다.

profile
모르는 건 모른다고 하는 사람

0개의 댓글