차이점 C++ and Java
주요 차이점 C++ and Java
- C++ 컴파일러만 사용하는 반면 Java 컴파일러와 인터프리터를 모두 사용합니다.
- C++ 연산자 오버로딩과 메서드 오버로딩을 모두 지원합니다. Java 메소드 오버로딩만 지원합니다.
- C++ 신규 및 삭제 키워드를 사용하여 수동 개체 관리를 지원하는 반면 Java 자동 가비지 수집 기능이 내장되어 있습니다.
- C++ 구조를 지원하는 반면 Java 구조를 지원하지 않습니다.
- C++ 노조를 지지하는 동안 Java 노조를 지지하지 않는다.
무엇인가 C++ 언어?
C++ C 프로그래밍 언어의 특징과 Simula67(최초의 객체 지향 언어)의 특징을 모두 포함하는 컴퓨터 프로그래밍 언어입니다. C++ 클래스와 객체의 개념을 도입했습니다.
이는 높은 수준과 낮은 수준의 언어 기능을 캡슐화합니다. 따라서 중급 언어로 간주됩니다. 이전에는 C 언어의 모든 속성을 가지고 있었기 때문에 "C with class"라고 불렸습니다.
무엇인가 Java 언어?
Java Sun Microsystems에서 개발한 프로그래밍 언어입니다. 소규모 소프트웨어 개발 팀이 이 언어를 개발했습니다. 그들은 그린팀(Green Team)으로 알려졌는데, Java 1991년 언어.
의 역사 C++
C++ 언어는 AT & T Bell Laboratories의 Bjarne Stroustrup이 개발했습니다. Stroustrup은 C의 강력한 지지자이자 Simula67의 찬사자였습니다. 그는 두 언어의 장점을 결합하고자 했습니다. 그는 객체 지향 프로그래밍 기능을 지원하면서도 C의 기능을 유지하는 언어를 만들고자 했습니다. 그 결과 C++.
의 역사 Java
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 Java 언어는 원래 OAK라고 불렸습니다. 원래는 장치와 셋톱 박스를 처리하기 위해 개발되었습니다. Oak는 엄청난 실패였습니다. 그래서 1995년에 Sun은 이름을 OAK로 변경했습니다. Java 급성장하는 World Wide Web 개발 사업을 활용하기 위해 언어를 수정했습니다.
Later, 2009 년 Oracle Corporation은 Sun Microsystems를 인수하고 두 가지 주요 Sun 소프트웨어 자산의 소유권을 인수했습니다. Java and Solaris.
차이점 C++ and Java
매개 변수 | C++ | Java |
---|---|---|
관계 | 클래스 이름과 파일 이름 사이에는 엄격한 관계가 없습니다. ~ 안에 C++, 헤더 파일 및 구현 파일은 특정 클래스에 사용됩니다. | 엄격한 관계가 적용됩니다. 예를 들어 PayRoll 클래스의 소스 코드는 PayRoll.java에 있어야합니다. |
입력 메커니즘 | I/O 문은 in과 cout을 사용합니다. 예: in » x; cout< y; | I/O 입력 메커니즘은 한 번에 한 바이트씩 읽기 때문에 매우 복잡합니다(System.in). 출력은 간단합니다. 예: System.out.println(x); |
컴파일러 및 인터프리터 | C++ 컴파일러만 지원 | Java 컴파일러와 인터프리터를 모두 지원합니다. |
다른 언어와의 호환성 | 일부 예외적인 경우를 제외하고 C 소스 코드와 호환됩니다. | 이전 언어와 하위 호환성이 없습니다. 구문은 C/의 영향을 받습니다.C++. |
액세스 제어 및 개체 보호 | 지속적인 보호가 가능한 유연한 모델 | 성가신 모델은 약한 캡슐화를 권장합니다. |
개념 | 어디서나 컴파일 한 번 작성 | 어디서나 실행 한 번 작성 |
프로그래밍 유형 지원 | 절차 적 프로그래밍과 객체 지향 프로그래밍을 모두 허용합니다. | 객체 지향 프로그래밍 모델을 지원합니다. |
인터페이스 | 네이티브 시스템 라이브러리에 대한 직접 호출을 허용합니다. | 통해서만 전화하세요. Java 네이티브 인터페이스와 최근 Java 기본 액세스 |
메모리 관리 | 프로그래머에게 접근 가능 | 시스템 제어 |
루트 계층 | C++ 그러한 루트 계층 구조는 없습니다. C++ 절차적 프로그래밍과 객체 지향 프로그래밍을 모두 지원합니다. 따라서 이를 하이브리드 언어라고 합니다. | Java 순수한 객체 지향 프로그래밍 언어입니다. 그렇죠. 단일 루트 계층 구조를 따르는 이유 |
최고의 특징 | C++ 객체 지향 기능을 지원합니다. 절차적 프로그래밍 기능입니다. | Java 자동 가비지 수집을 지원합니다. 소멸자를 지원하지 않습니다. C++ 않습니다. |
Goto 문 | C++ goto 문이 있습니다. 그러나 goto 문을 사용하는 것은 이상적이지 않습니다. | Java goto 문이 없습니다. got 및 const 키워드는 사용되지 않더라도 예약되어 있습니다. |
다중 상속 | C++ 다중 상속을 제공합니다. virtual 키워드는 다중 상속 중에 문제가 있는 경우 문제를 해결하는 데 사용됩니다. | Java 다중 상속을 제공하지 않습니다. |
범위 해결 연산자 | C++ 범위 해결 연산자가 있습니다 (: :) 이는 클래스 외부에서 메소드를 정의하고 동일한 이름의 로컬 변수가 존재하는 범위 내에서 전역 변수에 액세스하는 데 사용됩니다. |
범위 해결 연산자 없음 (: :) in Java. 메서드 정의는 클래스 내에서 발생해야 하므로 범위 확인이 필요하지 않습니다. |
지원 방법 | C++ 메서드 오버로딩과 연산자 오버로딩을 모두 지원합니다. | Java 메서드 오버로딩만 지원합니다. 연산자 오버로딩은 지원하지 않습니다. |
이식성 | 플랫폼에 맞게 소스를 다시 컴파일해야합니다. 따라서 코드는 이식 가능하지 않습니다. | 바이트코드 클래스는 플랫폼별 JVM으로 전송 가능합니다. |
유형 의미 | 기본 유형과 객체 유형간에 일치합니다. | 기본 유형과 객체 유형이 다릅니다. |
도서관 | 주로 낮은 수준의 기능 | 높은 수준의 서비스를 위한 대규모 클래스. |
런타임 오류 감지 | 프로그래머의 책임. | 시스템 책임. |
기능 및 데이터 | 함수와 데이터는 모든 클래스 외부에 존재할 수 있으며 전역 및 네임 스페이스 범위를 사용할 수 있습니다. | 모든 함수와 데이터는 클래스 내에 존재합니다. 패키지 범위를 사용할 수 있습니다. |
플랫폼 | C++ 프로그램은 플랫폼에 따라 다릅니다. 특정 플랫폼에 맞게 컴파일해야 합니다. | Java 프로그램은 플랫폼 독립적입니다. Java 프로그램은 다음을 위해 작성되었습니다. Java 가상 머신(JVM). 다시 컴파일할 필요 없이 실행됩니다. |
런타임 오류 감지 | In C++, 오류를 확인하는 것은 프로그래머의 책임입니다. | 프로그램의 오류를 확인하는 것은 시스템의 책임입니다. |
포인터 | C++ 포인터를 지원합니다. | Java 포인터에 대해 제한된 지원만 제공합니다. |
Structure | 구조를 지원합니다. | 구조에 대한 지원은 없습니다. |
조합 | C++ 노조를 지지합니다. | Java 노조를 지지하지 않습니다. |
개체 관리 | C++ 신규 및 삭제 키워드를 사용하여 수동 개체 관리를 지원합니다. | Java 자동 가비지 수집에 의존합니다. 소멸자를 지원하지 않습니다. |