티스토리 뷰
Java와 C++
구분 | C++ | Java |
언어 유형 | 절차지향 및 객체지향 프로그래밍 지원 | 객체지향 프로그래밍 지원 |
메모리 관리 | 메모리 수동 할당/해제 관리 | 가비지 컬렉션으로 메모리 자동 관리 |
플랫폼 독립성 | 컴파일 언어만 지원하여 바로 기계 코드로 전환되어 플랫폼에 종속적 | 컴파일 언어와 인프린트 언어 모두 포함 JVM을 통해 바이트코드(중간언어)로 어떤 OS에도 실행될 수 있음 (Write Once Run Anywhere) |
언어 복잡성 | 강하고 유연하지만 복잡한 뭄법, 포인터 등 더 많은 제어 권한을 개발자에게 부여 (에러, 버그 발생 가능성 높음) | 상대적 간단한 문법과 안전한 기능 제공, 오류를 최소화하고 런타임 에러를 방지하도록 도움 |
성능 | 높은 성능 제공, 하드웨어 리소스에 더 근접히 접근 가능 | C++에 비하면 느리지만 성능 향상을 위한 여러 최적화를 제공 |
상속 및 다형성 | 다중 상속, 가상함수 등을 통한 다형성 구현 | 단일 상속, 인터페이스, 추상 클래스 등으로 다양한 객체 지향 디자인 패턴 구현 |
표준 라이브러리 | STL로 컨테이너, 알고리즘, 반복자 등 제공 | JSL로 다양한 기본 클래스 및 도구 제공 |
스레드 | 스레드 및 동시성을 직접 다루며, 표준 라이브러리와 별도로 스레딩 라이브러리 제공 | 멀티스레딩 및 동시성을 지원하는 기능 제공, 스레드 안정성 강조 |
개발 생산성 | 개발자에게 더 많은 제어와 최적화 권한을 부여하지만, 개발 시간이 늘어남 | 개발 생산성이 높고, 안정성과 이식성이 강조 |
라이브러리 및 생태계 | 게임 개발 및 시스템 프로그램과 같은 고성능 응용 분야에 주로 사용 | 개발 기간 단축 및 개발의 부가적 도움이 많아 대규모 엔터프라이브 앱 개발에 적합 |
Java와 C#
구분 | C# | Java |
언어 유형 | 객체지향 + 컴포넌트 지향 프로그래밍 | 순수 객체지향 프로그래밍 |
플랫폼 독립성 | CIL과 CLR로 멀티 플렛폼을 지원하지만 주로 .NET 플랫폼에 사용, .Net Core를 통해 실행 | 바이트코드와 JVM을 통해 플랫폼 독립성 보장 |
개발 환경 | Visual Studio와 같은 통합 개발 환경(IDE)에서 이루어짐 | 여러 IDE를 선택 가능. 텍스트 편집기나 명령 줄 도구로도 작성 가능 |
언어 특성 | 이벤트, 속성, 람다 표현식 및 LINQ와 같은 기능 제공. | C#보다는 덜하지만 충분히 강력한 언어 기능 제공 |
라이브러리 및 생태계 | .NET 프레임워크로 풍부한 라이브러리 및 도구 제공. Windows 개발에 강력 | 충분히 넓고 다양한 라이브러리 보유, 크로스 플랫폼 앱 개발 및 웹 개발에 유용 |
메모리 관리 | .NET 런타임에서 가비지 컬렉션을 사용 | 가비지 컬렉션으로 자동 관리 |
C++와 C#
C++는 객체 지향으로 하나의 큰 바이너리 실행 파일로 결합된 '클래스간 연관성'이 초점이다.
C#은 컴포넌트 지향으로 자체적으로 작동하는 '교환이 가능한 코드 모듈'을 사용하여 각 모듈을 필요할 때 사용하는 것이 가능하다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 함수
- 메모리
- New
- 프로세스
- 명령어
- 레지스터
- 포인터
- static_cast
- CPU
- 수학
- 크기
- 할당
- dynamic_cast
- const
- 백준
- 클래스
- 게임수학
- 멀티스레드
- 스레드
- 입출력
- 인터럽트
- 알고리즘
- malloc
- c++
- 상속
- 초기화
- 컴파일
- 운영체제
- 구조
- thread
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함