개발자 기술 면접 준비/정리

C++ vs Java

ucong 2021. 5. 26. 14:34
  C++ JAVA
설계 목표 속도, C와의 하위 호환성에 집중 보안과 빠른 이식성에 집중
클래스 C언어의 상위 호환으로 절차지향이 섞임 기본단위 Class, 거의 완전한 OOP
컴파일과 런타임 각 운영체제에 맞는 기계어로 컴파일 가상머신 바이트 코드로 컴파일 하며, 이를 실행 시키기 위해서는 가상머신이 필요
이식성, 보안성 상대적으로 낮음 상대적으로 높음
바인딩 정적 바인딩
( 컴파일 시, 어떤 함수를 호출할 지 결정)
- 프로그램 실행 중에는 불필요한 오버헤드 없음
- virtual 키워드 제공
동적 바인딩
( 런타임 중, 실행코드가 결정 )
- 실행 시간에 그 인스턴스가 실제로 담고 있는 객체의 종류를 판단하여 메서드 호출
- 별도의 데이터 관리해야 하고 부가적인 오버헤드 붙음
문법 차이 - 동적으로 할당한 메모리 직접 해제
- 연산자 오버로딩, 다중상속 사용
- Carbage Collector 이 메모리를 자동으로 해제
- 연산자 오버로딩, 다중상속 사용 불가능
대신에 interface를 사용해 다중상속 같은 유사 기능 제공
인자 전달 방법의 차이   오로지 Call by Value만 가능
가상메서드 가상메서드를 별도로 선언해줘야 함 모든 메서드가 가상 메서드
즉, 레퍼런스 유형이 아닌 객체 유형에 따라 메소드 구현이 결정

'개발자 기술 면접 준비 > 정리' 카테고리의 다른 글

Parameter VS Argument  (0) 2021.05.28
Primitive type vs Reference type  (0) 2021.05.26
C vs JAVA  (0) 2021.05.21
JAVA의 장단점  (0) 2021.05.21
클래스/인스턴스란?  (0) 2021.05.21