# Java와 C의 차이점
- 가장 큰 차이점은 실행환경 이다.
- Java - 컴파일 혹은 컴파일 + jar 압축
- 링크(실행파일을 생성하는 작업) 과정이 없이 컴파일러가 바로 바이트 코드 생성
- C - 컴파일 + 링크
- Java - 컴파일 혹은 컴파일 + jar 압축
# 이외의 차이점
특징 | C | Java |
---|---|---|
절차지향 | 객체지향 | |
개발환경 | 비주얼 스튜디오 | 이클립스, 인텔리제이 |
처리속도 | 상대적으로 빠름 | 상대적으로 느림 |
유지보수 | 어려움(디버깅 어려움) | 용이함 |
용도 | 임베디드 또는 운영체제처럼 속도나 용량 등에서 최적화가 필요한 곳에서 주로 사용 | 웹 사이트나 운영체제와 상관없이 실행되어야 하는 응용 SW, 안드로이드 앱 등에서 사용 |
안정성 및 확장성 | 상대적으로 낮음 | 상대적으로 높음 |
메모리 제어 | 메모리를 직접 조절하여 메모리 낭비가 적음 | 각각의 클래스로 인해 메모리 낭비가 높음 |
엄밀히, 절차지향과 객체지향은 반대 개념이 아니다. 절차지향은 데이터 중심으로 함수를 구현하고, 객체지향은 기능 중심으로 메서드를 구현하는 차이가 있을 뿐이다.