Java의 특징
Java 는 1995년에 개발되었습니다.
객체 지향 언어(OOP) 로 기능 또는 역할에 따라 모듈화 하여 관리합니다.
→ 가독성, 유지보수성, 재 사용성이 좋습니다.
플랫폼 독립적 언어입니다.
운영체제에 관계없이 JVM 환경에서 실행됩니다.
→ 운영체제에 맞춰 코드를 재 작성할 필요가 없습니다.
다양한 라이브러리와 프레임워크가 존재합니다.
→ 빠른 개발이 가능하며 생산성이 증가됩니다.
Multi Thread를 지원합니다.
→ 동시에 여러 작업이 가능해 분산 컴퓨팅에 유용합니다.
보안성이 높습니다.
→ 자바 실행 시 코드 검증을 통해 악성, 바이러스 실행을 방지합니다.
메모리 관리를 가비지 컬렉터가 맡아 합니다.
→ 가비지 컬렉터를 사용하여 메모리 관리를 자동으로 수행합니다. 개발자는 메모리 관리에 신경 쓰지 않아도 됩니다.
타입이 강요됩니다.
→ 강한 타입 체계는 코드의 안전성과 안정성을 향상시킵니다.
Python의 특징
Python은 1991년 개발되었습니다.
플랫폼 독립적 언어입니다.
다양한 라이브러리와 프레임워크가 존재합니다.
메모리 관리를 가비지 컬렉터가 맡아 합니다.
→ 가비지 컬렉터를 사용하여 메모리 관리를 자동으로 수행합니다. 개발자는 메모리 관리에 신경 쓰지 않아도 됩니다.
스크립트 언어입니다.
→ 컴파일 없이 인터프리터에 의해 코드 번역과 실행이 진행됩니다. 때문에 컴파일 언어보다 느리다는 특성이 있습니다.
타입이 강요되지 않습니다.
→ 약한 타입 체계는 코드의 간결성과 편리성을 향상시킵니다. 그러나, 코드의 안전성과 안정성에 대한 문제가 발생할 수 있습니다.
C의 특징
C는 1972년에 개발되었습니다. 많은 프로그래밍 언어가 C언어의 제어구조와 수식을 따릅니다.
절차지향 프로그래밍 언어입니다.
→ 실행 순서에 따라 개발하기 때문에 실행이 빠릅니다.
C언어는 기계가 이해하기 쉬운 언어입니다.
→ 저수준 언어로 하드웨어에 직접 접근 가능합니다. 그렇기 때문에 하드웨어에 최적화된 코드를 작성할 수 있어 높은 성능을 가집니다.
메모리 관리를 개발자가 직접 합니다.
→ 개발자가 직접 메모리를 할당하고 해제해야 합니다.
플랫폼 의존적입니다.
→ 다양한 플랫폼에서 실행가능하지만, 플랫폼에 따라 코드를 재 작성해야합니다.
타입이 강요되지 않습니다.
→ 약한 타입 체계는 코드의 간결성과 편리성을 향상시킵니다. 그러나, 코드의 안전성과 안정성에 대한 문제가 발생할 수 있습니다.
정리
Java | Python | C | |
프로그래밍 패러다임 | 객체 지향 언어 | 다중 패러다임 (객체, 절차, 함수형) |
절차 지향 언어 |
실행 방법 | 컴파일 언어 | 인터프리터 언어 | 컴파일 언어 |
플랫폼 독립성 | 독립적 | 독립적 | 의존적 |
메모리 관리 | GC에 의해 관리 | GC에 의해 관리 | 개발자에 의해 관리 |
문법 | 정적 타입 언어 (강타입) | 동적 타입 언어 (타입강요 없음) | 동적 타입 언어 (타입강요 업음) |
활용 | 대형 소프트웨어, 웹 앱 등 | 웹 앱, 데이터 분석, 인공지능 등 | 하드웨어, 운영체제, 시스템 개발 등 |
'Java' 카테고리의 다른 글
[ Java ] 추상클래스 vs 인터페이스 (2) | 2023.12.22 |
---|---|
[ Java ] Stream 의 reduce 사용해보자 (0) | 2023.12.20 |
[ Java ] 리스트 ↔ 배열 변환 (0) | 2023.04.04 |
[Java] Arrays.sort() 로 오름차순 , 내림차순 정렬하기 ( + Integer[] , int[]) (0) | 2023.02.16 |