Java는 Sun Microsystems의 James Gosling이 개발했습니다. | C++는 C 언어의 확장으로 Bell Labs의 Bjarne Stroustrup에 의해 개발되었습니다. |
Ada 83, Pascal, C++, C#의 영향을 받았습니다. | Ada, ALGOL 68, C, ML, Simula, Smalltalk의 영향을 받았습니다. |
Java 바이트코드는 모든 운영 체제에서 작동합니다. | 라이브러리는 시스템마다 다르기 때문에 모든 운영 체제에서 작동하는 것은 아닙니다. |
모든 OS에서 실행할 수 있습니다. | 플랫폼에 따라 다르게 컴파일되어 어떤 OS에서도 실행할 수 없습니다. |
휴대용입니다. | 휴대용이 아닙니다. |
해석된 언어입니다. | 컴파일된 언어입니다. |
메모리 관리가 자동으로 수행됩니다. | 메모리 관리는 수동으로 수행됩니다. |
'가상' 키워드가 없습니다. | '가상' 키워드가 있습니다. |
단일 상속만 지원합니다. 다중 상속은 인터페이스를 사용하여 달성할 수 있습니다(부분만). | 단일 및 다중 상속을 지원합니다. |
연산자 오버로딩을 지원하지 않습니다. | 연산자 오버로딩을 지원합니다. |
포인터에 대한 제한된 지원을 제공합니다. | 포인터 연산을 지원합니다. |
높은 수준의 기능을 가지고 있습니다. | 낮은 수준의 기능을 가지고 있습니다. |
직접 네이티브 라이브러리 호출을 지원하지 않습니다. | 직접 시스템 라이브러리 호출을 지원합니다. |
소스 코드에 대한 문서 주석(/**.. */)을 지원합니다. | 소스 코드에 대한 문서 주석을 지원하지 않습니다. |
스레드 연산을 지원합니다. | 설계상 스레드를 지원하지 않습니다. 타사 스레딩 라이브러리를 사용하여 수행할 수 있습니다. |
입력을 위해 System.in과 같은 'System' 클래스를 사용합니다. | 입력 연산에 'cin'을 사용합니다. |
출력을 위해 System.out을 사용합니다. | 출력 작업에 'cout'을 사용합니다. |
출력을 위해 System.out을 사용합니다. | 출력 작업에 'cout'을 사용합니다. |
전역 범위를 지원하지 않습니다. | 전역 범위와 네임스페이스 범위를 지원합니다. |
구조 및 조합을 지원하지 않습니다. | 구조와 조합을 지원합니다. |
'goto' 키워드가 없습니다 | 'goto' 키워드를 지원합니다. |
Pass by Value 방식만 지원합니다. | 값에 의한 전달 및 참조 방법에 의한 전달을 지원합니다. |
가비지 컬렉터를 이용하여 자동으로 객체 관리를 수행합니다. | '새로 만들기'와 '삭제'를 통해 수동으로 개체 관리를 수행합니다. |