1. 유사점
- C++ 과 Java 모두 클래스의 객체를 인스터스화 하지 않는 static 메소드 또는 함수를 지원한다.
- C++ 과 Java 모두 오버로딩 생성자를 제공한다.
2. 차이점
- Java는 전처리기, typedef, defined를 지원하지 않는다.
- Java는 클래스(class)를 지원하지만 구조체와 공용체를 지원하지 않는다.
- 모든 Java 클래스의 최상위 클래스는 Object 클래스이다.
(모든 Java 클래스는 Object 클래스를 상속한다.)
- interface 키워드는 Java 만 제공한다.
- Java에 선언하는 모든 변수 또는 메서드는 모두 클래스 선언 내에 포함된다.
- Java는 다중 상속을 지원하지 않는다.
- C++ 은 배열의 범위를 초과하면 이를 판단할 수 없지만
Java는 배열의 사이즈 값을 가진 length 멤버 변수를 지닌다.
(Java는 객체를 배열로 제공하기에, 배열의 범위를 넘어서면 이를 index bound 예외를 발생시킨다.)
- Java는 포인터를 지원하지 않는다.
- C++에서 char 은 1 byte, Java 는 2byte
- Java 는 virtual 키워드가 없다.
(Java 는 static 함수가 아닌 모든 함수는 항상 동적 바인딩을 사용)
- Java 는 final 키워드가 존재한다.
(final 선언은 다중 정의가 될 수 없으므로 정적으로 바인딩됨을 의미한다.)
* 정적 바인딩
- 함수 또는 메서드를 컴파일시에 의미를 부여
* 동적 바인딩
- 함수 또는 메서드를 실행시에 의미를 부여
(C++ 에서 virtual 은 동적 바인딩을 하겠다는 것.)
'Language > C++' 카테고리의 다른 글
[C++] 변수 크기와 sizeof() 연산 (0) | 2020.12.13 |
---|---|
[C++] 다양한 변수 초기화 방법 (0) | 2020.12.13 |
[C++] float 와 double (0) | 2020.12.13 |
[C++] 배열과 연결 리스트의 차이 (0) | 2020.12.13 |
[C++] Stack과 Heap 의 차이 (0) | 2020.12.13 |