C ++와 Java의 차이점

C++와 Java의 주요 차이점

  • C++는 컴파일러만 사용하는 반면, Java는 컴파일러와 인터프리터를 모두 사용합니다.
  • C ++는 연산자 오버로딩과 메서드 오버로딩을 모두 지원하지만 Java는 메서드 오버로딩 만 지원합니다.
  • C ++는 new 및 delete 키워드를 사용하여 수동 객체 관리를 지원하는 반면 Java에는 자동 가비지 컬렉션이 내장되어 있습니다.
  • C++는 구조를 지원하지만 Java는 구조를 지원하지 않습니다.
  • C ++는 공용체를 지원하지만 Java는 공용체를 지원하지 않습니다.

  • C ++ 대 자바
    C ++ 대 자바

C ++ 언어는 무엇입니까?

C++는 C 프로그래밍 언어와 Simula67(최초 객체 지향 언어)의 기능을 모두 포함하는 컴퓨터 프로그래밍 언어입니다. C++에서는 클래스와 객체라는 개념을 도입했습니다.

이는 높은 수준과 낮은 수준의 언어 기능을 캡슐화합니다. 따라서 중급 언어로 간주됩니다. 이전에는 C 언어의 모든 속성을 가지고 있었기 때문에 "C with class"라고 불렸습니다.

Java 언어는 무엇입니까?

Java는 Sun Microsystems에서 개발한 프로그래밍 언어입니다. 소규모 소프트웨어 개발 팀이 이 언어를 개발했습니다. 그들은 1991년에 Java 언어를 시작한 Green Team으로 알려졌습니다.

C ++의 역사

C++ 언어는 AT & T Bell Laboratories의 Bjarne Stroustrup이 개발했습니다. Stroustrup은 C의 강력한 지지자이자 Simula67의 팬이었습니다. 그는 두 언어의 장점을 결합하고 싶었습니다. 그는 객체 지향 프로그래밍 기능을 지원하면서도 C의 강력한 기능을 유지하는 언어를 만드는 것을 목표로 삼았습니다. 그 결과 C++가 탄생했습니다.

자바의 역사

Java 언어는 원래 OAK라고 불렸습니다. 원래는 핸들링 기기 및 셋톱용으로 개발되었습니다. box예. 오크는 엄청난 실패를 겪었습니다. 따라서 1995년 Sun은 이름을 Java로 변경하고 급성장하는 World Wide Web 개발 사업을 활용하기 위해 언어를 수정했습니다.

Later, 2009 년 Oracle Corporation은 Sun Microsystems를 인수하고 두 가지 주요 Sun 소프트웨어 자산의 소유권을 인수했습니다. 자바 그리고 솔라리스.

C ++와 Java의 차이점

매개 변수 C + + 자바
관계 클래스 이름과 파일 이름 사이에는 엄격한 관계가 없습니다. C++에서는 특정 클래스에 대해 헤더 파일과 구현 파일을 사용합니다. 엄격한 관계가 적용됩니다. 예를 들어 PayRoll 클래스의 소스 코드는 PayRoll.java에 있어야합니다.
입력 메커니즘 I/O 문은 in과 cout을 사용합니다. 예: in » x; cout< y; I/O 입력 메커니즘은 꽤 복잡합니다.plex 한 번에 한 바이트씩 읽습니다(System.in). 출력은 쉽습니다. 예: System.out.println(x);
컴파일러 및 인터프리터 C++만 지원하는 컴파일러 Java는 컴파일러와 인터프리터를 모두 지원합니다.
다른 언어와의 호환성 일부 예외적인 경우를 제외하고 C 소스 코드와 호환됩니다. 이전 언어와의 역 호환성이 없습니다. 구문은 C / C ++의 영향을받습니다.
액세스 제어 및 개체 보호 지속적인 보호가 가능한 유연한 모델 성가신 모델은 약한 캡슐화를 권장합니다.
개념 어디서나 컴파일 한 번 작성 어디서나 실행 한 번 작성
프로그래밍 유형 지원 절차 적 프로그래밍과 객체 지향 프로그래밍을 모두 허용합니다. 객체 지향 프로그래밍 모델을 지원합니다.
인터페이스 네이티브 시스템 라이브러리에 대한 직접 호출을 허용합니다. Java Native Interface 및 최근 Java Native Access를 통해서만 호출
메모리 관리 프로그래머에게 접근 가능 시스템 제어
루트 계층 C ++에는 그러한 루트 계층이 없습니다. C ++는 절차 적 프로그래밍과 객체 지향 프로그래밍을 모두 지원합니다. 따라서이를 하이브리드 언어라고합니다. Java는 순수한 객체지향 프로그래밍 언어입니다. 그렇죠. 단일 루트 계층 구조를 따르는 이유
특장점 C ++는 객체 지향 기능을 지원합니다. 절차 적 프로그래밍 기능. Java는 자동 가비지 수집을 지원합니다. C++처럼 소멸자를 지원하지 않습니다.
Goto 문 C++에는 goto 문이 있습니다. 그러나 goto 문을 사용하는 것은 이상적이지 않습니다. Java에는 goto 문이 없습니다. got 및 const 키워드는 사용되지 않더라도 예약되어 있습니다.
다중 상속 C++에서는 다중 상속을 제공합니다. virtual 키워드는 다중 상속 중에 문제가 있는 경우 문제를 해결하는 데 사용됩니다. Java는 다중 상속을 제공하지 않습니다.
범위 해결 연산자 C++에는 범위 확인 연산자가 있습니다. (: :) 이는 클래스 외부에서 메소드를 정의하고 동일한 이름의 로컬 변수가 존재하는 범위 내에서 전역 변수에 액세스하는 데 사용됩니다. 범위 확인 연산자 없음 (: :) 자바에서. 메서드 정의는 클래스 내에서 발생해야 하므로 범위 확인이 필요하지 않습니다.
지원 방법 C ++는 메서드 오버로딩과 연산자 오버로딩을 모두 지원합니다. Java는 메소드 오버로딩 만 지원합니다. 연산자 오버로딩을 지원하지 않습니다.
이식성 플랫폼에 맞게 소스를 다시 컴파일해야합니다. 따라서 코드는 이식 가능하지 않습니다. 바이트코드 클래스는 플랫폼별 JVM으로 전송 가능합니다.
유형 의미 기본 유형과 객체 유형간에 일치합니다. 기본 유형과 객체 유형이 다릅니다.
도서관 주로 낮은 수준의 기능 높은 수준의 서비스를 위한 대규모 클래스.
런타임 오류 감지 프로그래머의 책임. 시스템 책임.
기능 및 데이터 함수와 데이터는 모든 클래스 외부에 존재할 수 있으며 전역 및 네임 스페이스 범위를 사용할 수 있습니다. 모든 함수와 데이터는 클래스 내에 존재합니다. 패키지 범위를 사용할 수 있습니다.
플랫폼 C ++ 프로그램은 플랫폼에 따라 다릅니다. 특정 플랫폼 용으로 컴파일해야합니다. Java 프로그램은 플랫폼 독립적입니다. Java 프로그램은 다음을 위해 작성되었습니다. 자바 가상 머신(JVM). 다시 컴파일할 필요 없이 실행됩니다.
런타임 오류 감지 C++에서는 오류를 확인하는 것이 프로그래머의 책임입니다. 프로그램의 오류를 확인하는 것은 시스템의 책임입니다.
포인터 C ++ 지원 포인터. Java는 포인터에 대한 제한된 지원 만 제공합니다.
Structure 구조를 지원합니다. 구조에 대한 지원은 없습니다.
조합 C ++는 공용체를 지원합니다. Java는 공용체를 지원하지 않습니다.
개체 관리 C ++는 new 및 delete 키워드를 사용하여 수동 개체 관리를 지원합니다. Java는 자동 가비지 수집에 크게 의존합니다. 소멸자를 지원하지 않습니다.