Language/C++

[C++] Java 와 C++ 유사점 및 차이

마탁이 2020. 12. 13. 16:32

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