[CS] C++ 과 자바

C++이란

C언어를 확장하여 만든 객체지향 프로그래밍

C언어의 대부분 특징을 포함하고 있어 시스템 프로그래밍에 적합하다.

클래스, 연산자 중복, 가상함수 등과 같은 특징을 가지고 있다.

C++ 프로그램의 작성 및 빌드

img

  1. 프로그램 작성 (.cpp)

  2. 컴파일 (.obj)

  3. 링크 (.obj 파일 연결)

  4. 실행 파일 (.exe)

  5. 실행

JAVA란

https://helloworld-88.tistory.com/3

C/C++ 스타일의 언어와 가상 머신을 구현한 것으로, Write Once, Run Anywhere을 목표로 작성된 객체지향 프로그래밍

JAVA 특징

  1. 객체지향 언어
  1. 높은 이식성
  1. 컴파일 언어 + 인터프리터 언어
  1. 메모리를 자동으로 관리
  1. 멀티 스레드 구현이 쉬움
  1. 동적 로딩 지원
  1. 분산 환경 지원
  1. 오픈소스 라이브러리가 풍부

C++과 Java의 차이점

  C++ Java
특징 플랫폼 종속적 언어 모든 플랫폼에서 컴파일 플랫폼 독립적 언어 바이트 코드로 컴파일 ▶ 모든 플랫폼 실행
컴파일러 컴파일러 > 실행 가능한 객체 코드로 컴파일 컴파일러 + 인터프리터 > 컴파일 후 바이트 코드 해석
과정 소스파일(컴파일) ▶ 목적파일(링크) ▶ 실행파일 소스파일(컴파일) ▶ 클래스파일(JVM) ▶ 실행파일
바인딩 정적바인딩 동적바인딩
문법 프로그래머에 의해 메모리 관리 제어 기능 가비지 컬렉션
연산자 오버로딩 O X
다중 상속 O X 인스턴스로 비슷하게 사용 가능
추상 클래스 순수 가상 함수들을 가진 클래스(0으로 초기화) 반드시 파생되어야 함 자신은 인스턴스화 될 수 없음
형변환 기본 자료형, 사용자 정의 자료형에 대한 암시적 형변환 허용 기본 자료형 사이에 오직 넓은 범위로의 암시적 형변환 허용 그 외: CAST를 통한 명시적 형변환만 가능
장점 값에 의한 전달 참조에 의한 전달 포인터 전달을 통한 데이터 전달 속도가 빠름 웹에 최적화 C++에 기반하지만 규모가 작고, 단순 높은 신뢰성 및 유지보수 편리
단점 객체지향 개념이 약함 C++에 비해 속도가 느림 단일 상속 포인터X 바이트 코드 보안 취약