Java와 C 언어의 차이점은 무엇인가요?
1. Java와 C 메모리 할당은 다릅니다.
Java에는 5개의 메모리 할당 영역이 있습니다. , 각각 스택 영역(로컬 변수가 저장되어 사용 후 즉시 재활용됨)과 힙 영역(새로운 사물, 엔터티 및 개체를 저장합니다. 각 개체에는 주소 값이 있고 각 개체의 데이터에는 기본값으로 사용 후 가비지 컬렉터가 유휴 상태일 때), 메소드 영역, 로컬 메소드 영역(시스템 관련) 및 저장 영역(CPU에서 사용)이 재활용됩니다. [추천 학습: javacourse]
C 메모리는 네 가지 영역, 즉 스택 영역(함수 매개변수와 로컬 변수의 값을 저장하는 영역)과 힙 영역( 동적 메모리 적용 및 해제(프로그래머가 메모리를 해제하지 않으면 프로그램 종료 후 운영 체제에 의해 해제될 수 있음), 전역 영역(정적 영역), 코드 영역.
2, function
1) 변수와 함수의 경우 C에서는 선언과 정의를 구현해야 하지만 Java에서는 정의만 있습니다. 선언 없음;
2) C는 객체 지향적이지 않기 때문에 C의 모든 전역 변수와 함수는 기본적으로 Java에 대해 정적입니다. Java는 객체 지향 언어이므로 기본 함수 및 변수를 포함하여 클래스 및 인터페이스 외부에서 함수를 선언하는 것을 허용하지 않습니다. C에서는 하나의 파일에 많은 수의 전역 변수를 정의하고 공유를 위해 이러한 변수를 다른 파일에서 참조로 선언하는 것이 일반적이지만 Java에서는 전역 변수나 함수를 허용하지 않습니다. ) C의 함수 반환 값 유형이 선언된 유형과 일치하지 않으면 함수 반환 전에 함수 반환 값이 자동으로 이 유형으로 변환됩니다. Java에서 이러한 상황이 발생하면 강제 유형 변환이 추가되어야 합니다. 🎜 🎜#
4) C에서 함수 호출 매개변수 계산 순서는 정의되지 않은 반면 Java는 왼쪽에서 오른쪽으로 순서가 있습니다. 5) C에서는 변수나 함수가 다음과 같습니다. in another 파일에 정의된 경우 extern을 사용하여 변수나 함수를 선언해야 합니다. 개별 파일을 컴파일할 때는 표시되지 않지만 연결 단계에서는 표시됩니다. Java의 컴파일러에는 이러한 링크 단계가 없으며 필요한 모든 파일이 컴파일 타임에 표시되어야 합니다. 6) C 및 Java 프로그램 모두 기본 함수에서 실행을 시작합니다. C의 main 함수에는 일반적으로 argc와 argv라는 두 개의 매개변수가 필요합니다. argc에는 명령줄 매개변수 수가 포함되어 있고 argv에는 실제 명령줄 매개변수가 포함되어 있습니다. java에서는 stringargs[]를 메서드의 매개변수로 사용해야 합니다. Java 애플리케이션을 시작할 때 사용되는 실행 중인 시스템 명령줄 매개변수를 수신합니다. 7) 종료 함수는 C 및 Java에서 호출되어 프로그램을 종료할 수 있습니다. C에서는 중단 함수를 사용하여 종료할 수 있습니다. 비정상적으로 종료된 프로그램, Java에는 해당 전략이 없습니다.3. 전처리기와 헤더 파일의 비교
C에는 전처리기와 헤더 파일이 없습니다. 컴파일러는 전처리된 소스 프로그램을 컴파일합니다. C에서는 일반적으로 프로토타입, 전역 변수, 라이브러리 함수 등을 선언하는 데 사용됩니다.
4. 사용법 측면에서
C 언어: 순수 C는 일반적으로 임베디드 시스템에서 가장 낮은 수준의 프로그램을 작성하는 데 사용됩니다. 해당 언어의 하드웨어 연결이 가장 쉽습니다. 할 수 있는 일: 임베디드 하위 수준 소프트웨어, 운영 체제, 다양한 기능 라이브러리, 엔진 라이브러리 소프트웨어 핵심 코드, 서버 측 하위 수준 도구.
JAVA: J2EE, J2SM, J2ME 등 무엇이든 가능합니다. 할 수 있는 일 : 임베디드 모바일 기기 애플리케이션 소프트웨어 개발, 웹페이지 배경 로직 개발, 일부 데스크탑 프로그램 C, JAVA는 실제로 다양한 분야에서 사용될 수 있습니다.5. 작동 모드 측면에서:
C 언어: 원래 C는 프로세스 지향, 즉 한 줄씩 실행됩니다. .
JAVA: 완전 객체 지향이며 모듈별로 실행됩니다. (보충: 물론 C++ 및 C#에서는 C도 객체 지향 모드로 변환되었습니다.)6 다른 구문:
# 🎜🎜#C 언어는 메모리를 직접 조작할 수 있지만 Java는 메모리를 직접 조작할 수 없습니다.
C 언어는 동적을 캡슐화할 수 있습니다. 라이브러리, Java가 작동하지 않습니다.
C 언어 코드는 크로스 플랫폼이 쉽지 않고 Java 코드는 크로스 플랫폼이 쉽습니다.
# 🎜🎜## 🎜🎜#
C 언어 스레드는 더 유연하며 Java 스레드는 3개 외에 숫자로 시작할 수 없습니다. C에서 사용할 수 있는 식별자 유형 중 Java에는 달러 기호($)가 하나 더 있으며 숫자로 시작할 수 없습니다.위 내용은 자바와 C 언어의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!