C++ 대 Java: C++와 Java의 차이점 [2022]

게시 됨: 2021-01-05

객체 지향 프로그래밍(OOP)은 논리나 기능 대신 "객체"를 중심으로 소프트웨어 설계를 구축하는 데 중점을 둔 컴퓨터 프로그래밍 원리입니다. 개체는 고유한 속성(특성)을 가진 데이터 필드를 나타냅니다. 본질적으로 OOP는 조작 뒤에 있는 논리보다 객체 조작에 더 중점을 둡니다.

C++와 Java는 둘 다 객체 지향 프로그래밍 언어이지만 서로 상당히 다릅니다. 예를 들어, C++는 C 프로그래밍 언어에서 많은 영감을 얻었으며 시스템 개발을 위해 설계되었습니다. 그러나 Java는 안전하고 이식 가능한 가상 머신을 기반으로 하며 애플리케이션 프로그래밍 및 네트워크 컴퓨팅을 위해 명시적으로 구축되었습니다.

이 블로그에서는 C++ 대 Java 논쟁에 대해 더 깊이 파고들어 C++와 Java의 차이점에 대해 자세히 알아볼 것입니다.

목차

C++ 대 Java: 역사에 대한 간략한 논의

C++이란 무엇입니까?

C++는 C와 Simula(최초 OOP 언어) 프로그래밍 언어의 기능을 결합한 중급 프로그래밍 언어입니다. C++는 고수준 및 저수준 기능을 모두 포함하며 클래스 및 개체 개념을 도입한 최초의 프로그래밍 언어였습니다. Windows, Mac OS 및 UNIX와 같은 주요 플랫폼과 호환됩니다.

C++의 역사

Bjarne Stroustrup은 1979년 AT & T Bell Laboratories에서 C++를 개발했습니다. Stroustrup은 C와 Simula 언어의 최고의 기능을 병치시키는 비전을 가지고 있었습니다. 아이디어는 객체 지향 프로그래밍을 지원하면서 C의 힘을 유지하는 언어를 설계하는 것이었습니다. Stroustrup은 "시스템 프로그래밍과 리소스가 제한된 임베디드 소프트웨어 응용 프로그램 및 대규모 시스템에 대한 편견을 가지고 C++를 개발했습니다. C++의 핵심 하이라이트는 고성능, 효율성 및 유연성입니다.

읽기: 초보자를 위한 C++ 프로젝트 아이디어

자바 언어는 무엇입니까?

Java는 WORA( 한 번 작성, 어디서나 실행 ) 원칙 을 기반으로 하는 고급 클래스 기반 OOP 언어입니다 . 이는 컴파일된 Java 코드가 재컴파일 없이 모든 플랫폼에서 원활하게 실행될 수 있음을 의미합니다. 일반적으로 Java 애플리케이션은 기본 시스템 아키텍처에 관계없이 모든 JVM(Java Virtual Machine)에서 실행되도록 바이트코드로 컴파일됩니다. Java의 구문은 C 및 C++와 매우 유사합니다. 낮은 수준의 종속성이 더 적습니다.

자바의 역사

원래 Java는 Sun Microsystems에서 개발했습니다. Sun Microsystems는 1995년에 Java 플랫폼의 주요 구성 요소로 언어를 출시했습니다. 2009년 Oracle Corporation이 Sun Microsystems를 인수한 후 Sun Microsystems의 두 가지 최상위 자산인 Java 및 Solaris의 소유자이자 호스트가 되었습니다.

읽어보기: 취업을 위한 최고의 컴퓨터 과정

C++ 대 Java: C++와 Java의 차이점

C++와 Java의 주요 차이점은 다음과 같습니다.

설계

C++는 주로 시스템 프로그래밍용으로 설계되었지만 Java는 응용 프로그램 프로그래밍용으로 구축되었으며 이제 웹 기반, 엔터프라이즈 및 모바일 응용 프로그램 개발에 광범위하게 사용됩니다.

루트 계층

C++는 절차적 프로그래밍과 객체 지향 프로그래밍을 결합하므로 엄격한 루트 계층 구조가 없습니다. Java는 단일 루트 계층 구조를 따르는 순수 OOP 언어입니다.

플랫폼 종속성

C++는 플랫폼에 종속적인 언어이지만 Java는 플랫폼에 종속되지 않습니다. 따라서 모든 플랫폼에서 C++ 소스 코드를 컴파일해야 합니다. 그러나 소스 코드를 Java용 바이트 코드로 컴파일하면 다른 플랫폼에서 효율적으로 실행할 수 있습니다.

컴파일러 및 인터프리터

C++는 컴파일된 언어이기 때문에 C++ 소스 코드는 먼저 개체 코드로 컴파일된 다음 실행되어 출력을 생성합니다. Java는 컴파일되고 해석되는 언어입니다. Java 소스 코드의 컴파일된 출력은 플랫폼 독립적인 바이트 코드입니다.

클래스 관계

C++에서는 클래스 이름과 파일 이름 사이에 엄격한 관계가 없습니다. 따라서 C++ 프로그램에서 여러 클래스를 가질 수 있으며 파일 이름으로 무엇이든 설정할 수 있습니다(파일 이름과 클래스 이름이 같을 필요는 없습니다. 이와 반대로 Java는 소스 코드 클래스와 파일 이름 사이에 엄격한 관계를 적용합니다. 따라서 소스 코드를 포함하는 클래스와 파일 이름은 동일해야 합니다.

메모리 관리

C++는 수동 메모리 관리를 지원합니다. 따라서 "새로 만들기" 및 "삭제" 기능을 사용하여 수동으로 메모리를 할당하거나 할당 해제해야 합니다. 반대로 Java는 시스템 제어 메모리 관리를 지원합니다.

계승

C++는 단일 및 다중 상속을 모두 지원하지만 Java는 단일 상속만 지원합니다. Java에서 다중 상속을 위해서는 Java 인터페이스를 사용해야 합니다.

과부하

C++는 메서드와 연산자의 오버로딩을 지원합니다. 이 프로세스를 정적 ​​다형성이라고 합니다. Java는 메소드 오버로딩만 허용합니다.

가상 키워드

C++는 동적 다형성을 특징으로 하기 때문에 함수와 함께 가상 키워드를 사용하여 파생 클래스에서 특정 함수를 재정의할 수 있음을 나타냅니다. 가상 키워드 개념은 Java에 없습니다. 기본적으로 비정적 메서드만 재정의할 수 있습니다.

스레드 지원

C++에는 스레드에 대한 기본 제공 지원이 없으며 대신 스레드 지원을 위해 타사 라이브러리에 의존합니다. C++와 달리 Java에는 기본 제공 스레드 지원이 있습니다. 모든 스레드 클래스를 상속하고 run 메서드를 재정의할 수 있습니다.

포인터 지원

C++는 포인터에 대한 강력한 지원을 제공하고 개발자가 포인터를 사용하여 강력한 프로그램을 작성할 수 있도록 합니다. 그러나 Java는 포인터에 대한 지원이 제한적입니다. 따라서 C++ 프로그램을 작성할 때처럼 자연스럽게 Java에서 포인터를 사용할 수 없습니다.

문서 주석 지원

C++는 문서 주석을 지원하지 않지만 Java는 문서 주석을 지원합니다. (/** ... */)를 사용하여 Java 소스 코드에 대한 문서 주석을 작성할 수 있습니다.

고토문

C++는 goto 문을 지원하지만 Java는 goto 문을 지원하지 않습니다.

통화 지원

C++는 값에 의한 호출과 참조에 의한 호출을 모두 지원하지만 Java는 값에 의한 호출만 지원합니다.

확인: Java에서의 경력: Java에서 성공적인 경력을 만드는 방법

세계 최고의 대학에서 소프트웨어 공학 학위취득하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

결론적으로 C++와 Java는 OOP 언어임에도 불구하고 많은 차이점을 가지고 있습니다. 이 기사를 통해 C++와 Java의 주요 차이점을 더 잘 이해할 수 있기를 바랍니다.

Java, OOP 및 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육을 제공하는 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 이그 제 큐 티브 PG 프로그램을 확인하십시오. 9개 이상의 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

미래의 직업을 위한 준비

지금 소프트웨어 공학 석사 지원