Computer/Programming(코딩)

[Programming Language] C++와 JAVA의 차이점

Lewis.yongmin 2015. 10. 14. 13:00
<탄생의 역사>

C++는 이름에서 나타나듯이 C를 더 확장하여 만들었다. 
절차적 프로그래밍 언어효율적인 실행을 목표로 설계되었다. 
정적 자료형 검사 객체 지향 프로그래밍, 예외 처리, RAII, 제네릭 프로그래밍을 지원한다. 
범용 컨터이너와 알고리즘을 포함한 C++ 표준 라이브러리도 추가되었다.

JAVA는 가전제품에 탑재되어 네트워크 컴퓨팅을 지원하기 위해서 만들었다
가상 머신위에서 실행되기 때문에 안전성을 가지며 또한 이식성이 높다. 
하위 플랫폼을 완벽히 추상화시켜 주는 광대한 분량의 라이브러리를 가지고 있다. 
자바는 C와 비슷한 문법을 사용할뿐 직접적인 호환성은 없다. 
사용하기 편하고 많은 사람이 이해하기 쉬운 언어를 목표로 설계되었다.

C++Java
C 소스 코드와 하위 호환성다른 언어와 소스코드 호환성은 없음
직접적인 시스템 라이브러리 호출 가능Java Native Interface를 이용
저수준 시스템 접근 가능안전하게 보호되는 가상 머신위에서 실행됨
선택적 자동 경계 검사항상 자동 경계 검사함
부호없는(unsigned) 연산 지원부호없는 연산 지원 안함
값에 의한 매개변수 전달 또는 참조에 의한 매개변수 전달항상 값에 의한 매개변수 전달. 매개변수로 객체에 대한 참조값을 사용할 수는 있다. 참조 대상의 내용을 변경할 수는 있지만, 참조값 자체는 변경할 수 없다; 메서드 호출 후에도 참조하는 객체는 다른 객체로 바뀌지 않을 것이다.
명시적 메모리 관리, 가비지 콜렉션은 추가적으로 라이브러리를 이용해야 함항상 자동 가비지 콜렉션
명시적인 자료형 재정의 허용자료형 안전성에 엄격함
C++ 표준 라이브러리는 적절한 범위까지 지원함광대한 분량의 라이브러리
연산자 오버로딩연산자는 재정의 할 수 없음