[Java] Java 의 주요 특징

2025. 4. 17. 09:48·JAVA

오늘은 Java의 주요 특징에 대해 알아보겠습니다.

저번에는 객체지향 언어인 Java가 가지고 있는 객체지향 개념에 대해 알아보았다면, 이번에는 자바만 가지고 있는 고유의 특징을 살펴보겠습니다.

 

자바는 어느 플랫폼에 종속성을 가지고 있지 않습니다. 즉 독립적입니다.

자바를 실행시키는 과정을 살펴보면, 우리가 작성한 코드들은 자바 컴파일러에 의해 바이트코드(.class)로 변환됩니다.

바이트 코드는 JVM 에 의해 기계어로 변환되어 코드가 실행되는데, JVM 은 해당 운영체제와 하드웨어에 맞게 실행시켜줍니다.

우리가 리눅스나 맥, 윈도우에서 작성한 자바코드들이 동일하게 각자의 운영체제에서 문제없이 실행되는 이유 입니다.

 

두번째는 자동 메모리 관리입니다.

개발자가 직접 메모리를 할당하거나 해제하지 않아도, 자바 내부에 있는 가비지 컬렉터(Garbage Collector)가 불필요한 객체를 자동으로 정리해줍니다. 즉 더 이상 사용되지 않는 객체를 감지하고 자동으로 메모리에서 해제함으로써, 메모리 누수나 강제 오류 같은 문제를 방지할 수 있습니다. 예를 들어, 우리가 코딩할 때 선언되었지만 사용되지 않는 변수나 메소드들이 있을 수 있는데, 이러한 객체들은 가비지 컬렉터에 의해 자동으로 처리됩니다. 이처럼 자바는 메모리 관리의 부담을 자동으로 처리해주기 때문에 개발자는 메모리 할당과 해제에 대한 걱정 없이 애플리케이션 개발에 집중할 수 있습니다.

 

세번째는 풍부한 api 와 라이브러리 입니다.

25년 4월 기준 언어 사용률

 

현재는 인공지능, 딥러닝, 머신러닝에 최적화된 파이썬 때문에 자바의 사용률이 조금 낮아보일 수 있지만, 여전히 높은 사용률을 자랑합니다.

전 세계적으로 수많은 개발자가 자바를 사용하기 때문에, 자바 기반의 오픈소스 라이브러리, 프레임워크, 툴이 끊임없이 개발되고

공유되고 있습니다.

또한 은행, 보험, 공공기관 등 대규모 기업 환경에서 많이 채택되어 왔습니다. 기업 환경에서는 다양한 요구사항을 처리하기 위한 라이브러리와 프레임워크가 필요하니, 자연스럽게 api 와 라이브러리가 풍부해지게 되었습니다.

 

네번째는 보안성 입니다.

자바는 JVM 기반 구조 덕분에 뛰어난 보안성을 제공합니다.

자바에서는 클래스가 로딩할때마다 철저한 클래스 검증 과정과 바이트코드 검토가 이루어지며, 또한 샌드박스 환경에서의 실행을 통해 외부에서 접근할 수 없는 안전한 실행 환경을 제공합니다.

 

다섯번째는 네트워크 기능 내장 입니다.

자바는 java.net 패키지를 통해 간단하고 강력한 네트워크 프로그래밍 기능을 제공합니다.

이 패키지는 TCP, UDP, HTTP 등 다양한 네트워크 프로토콜을 지원하며, 우리가 자주 사용했던 JSP 와 컨트롤러와 같은

클라이언트 - 서버 기반 통신을 쉽고 효율적으로 구성할 수 있게 도와줍니다. 자바의 네트워크 기능은 웹 애플리케이션이나 분산 시스템 개발에 매우 유용하며, 빠르고 안정적인 네트워크 연결을 제공합니다.

 

마지막으로 멀티쓰레딩 기능입니다.

먼저 멀티쓰레딩 기능에 대해 알려드리겠습니다. 우리가 사용하고 있는 채팅 시스템이나, 게시글을 올리면서 파일도 같이 올리는 즉 한가지 작업을 하는게 아닌 여러가지 작업을 동시에 할 때 멀티쓰레딩이 사용됩니다.

프로세스는 실행 중인 프로그램을 의미하고, 그 안에서 작업 단위를 쓰레드(Thread)라고 합니다. 멀티쓰레딩은 하나의 프로세스 안에서 여러 개의 쓰레드를 동시에 실행하여, 여러 작업을 병렬로 처리할 수 있게 해주는 기능입니다.

자바는 멀티쓰레딩을 위한 다양한 기능과 라이브러리를 기본적으로 제공하기 때문에, 비교적 구현이 쉽고 안정적입니다. 다른 언어들도 멀티쓰레딩을 지원하지만, 언어나 환경에 따라 제약이 있거나 구현 방식이 복잡한 경우도 있습니다.

자바는 이러한 멀티쓰레딩 기능을 강력하게 지원합니다. Thread, Runnable, Executor 등의 표준 API가 잘 구성되어 있고, synchronized, wait, notify 같은 키워드를 통해 동기화 처리도 쉽게 할 수 있습니다. 물론 다른 언어들에서도 멀티쓰레딩을 구현할 수 있지만, 자바는 구현이 간편하고 안정적인 라이브러리가 많아 실무에서도 자주 활용됩니다.

'JAVA' 카테고리의 다른 글

[Java] 인터페이스를 사용하는 이유는 무엇일까?  (0) 2025.04.21
[Java] GC(가비지 컬렉션)이란?  (1) 2025.04.21
[JDK | JRE] JDK 와 JRE 의 차이는 무엇일까?  (2) 2025.04.16
[JAVA] 객체지향 언어 JAVA  (0) 2025.04.16
[JVM] JVM이 무엇일까?  (0) 2025.04.16
'JAVA' 카테고리의 다른 글
  • [Java] 인터페이스를 사용하는 이유는 무엇일까?
  • [Java] GC(가비지 컬렉션)이란?
  • [JDK | JRE] JDK 와 JRE 의 차이는 무엇일까?
  • [JAVA] 객체지향 언어 JAVA
동준1234
동준1234
공부 기록
  • 동준1234
    dongjundev
    동준1234
  • 전체
    오늘
    어제
  • GitHub
    • 분류 전체보기 (150)
      • 일상 (1)
      • 복습 및 회고록 (26)
      • Spring (17)
      • JAVA (32)
      • kubernetes (1)
      • Front-End (13)
      • Server (11)
      • SQL (20)
        • JDBC (1)
      • 자격증 (7)
        • 정보처리기사 필기 준비 (6)
        • 정보처리기사 실기 준비 (0)
        • SQLD (1)
      • project (18)
        • 백준 및 코딩테스트 공부 (6)
        • 대학교 캡스톤 디자인 (6)
        • 4학년 캡스톤 디자인 및 전시회 (3)
      • 네트워크 (3)
      • AI 머신러닝 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    react
    JavaScript
    개발자
    프론트
    jQuery
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
동준1234
[Java] Java 의 주요 특징
상단으로

티스토리툴바