[JAVA] Java의 특징과 C++ 차이점

SmileJun·2025년 3월 6일

Java

목록 보기
1/8

1. JAVA의 특징

1.플랫폼 독립성(WORA)

  • JVM을 통해 다양한 운영 체제에서 실행할 수 있다. (JVM이라는 자바 가상기계가 대신 종속해준다.)

2. 가비지 컬렉션

  • 자동 메모리 관리 시스템인 가비지 컬렉션을 제공하여, 명시적으로 메모리를 해제하지 않아도 자동으로 처리된다.

3. 객체 지향 프로그래밍

  • Java는 객체 지향 프로그래밍으로, 클래스와 객체를 이용해 프로그램을 설계한다. 객체 지향의 특징인 캡슐화, 상속성, 다형성을 가진다.

4. 멀티스레드

  • 자바는 멀리스레딩을 내장 기능으로 제공하여, 운영체제의 도움 없이 자체적으로 복잡한 멀티스레딩 작업을 쉽게 구현할 수 있다.

5. 인터프리터와 컴파일러

  • Java는 소스 코드(.java)를 먼저 바이트코드로 컴파일하고 이를 JVM이 해석하여(.class) 실행한다. 또한 코드를 한 줄씩 읽어나가며 실행하는 방식인 인터프리터를 사용하며, 이 때문에 실행속도가 다소 느리다.(개선하기 위해 JIT 컴파일링 기법 사용)

2. Java와 C++의 차이점



특징JavaC++
플랫폼 독립성JVM을 통해 플랫폼 독립적 실행. "Write Once, Run Anywhere"컴파일된 네이티브 코드로, 플랫폼에 종속적
메모리 관리가비지 컬렉션으로 자동 메모리 관리프로그래머가 직접 메모리 할당과 해제를 관리 (new, delete)
포인터포인터가 없으며 참조(reference)를 사용포인터를 사용하여 메모리 주소를 직접 다룬다
성능JVM에서 실행되므로 C++보다 상대적으로 성능이 떨어질 수 있음네이티브 코드로 실행되므로 성능이 뛰어남
컴파일 및 실행환경링크 과정 없이 컴파일러가 바로 바이트 코드 생성직접 기계어로 컴파일되어 운영 체제에서 실행(컴파일 + 링크)
멀티스레딩내장된 멀티스레딩 지원C++11부터 멀티스레딩을 표준 라이브러리로 지원하지만 복잡
라이브러리표준 라이브러리가 풍부하고 일관성 있음표준 라이브러리는 강력하지만 복잡한 시스템 개발에 주로 사용
예외 처리예외 처리가 강제되고, 예외를 명시적으로 처리해야 함예외 처리는 선택적이며, 필요에 따라 사용
profile
하루하루는 성실하게, 인생 전체는 되는대로

0개의 댓글