>Java >Java시작하기 >Java 언어 플랫폼이 독립적인 이유는 무엇입니까?

Java 언어 플랫폼이 독립적인 이유는 무엇입니까?

藏色散人
藏色散人원래의
2020-04-23 11:09:124131검색

Java 언어 플랫폼이 독립적인 이유는 무엇입니까?

왜 Java 언어는 플랫폼 독립적이라고 할까요?

1. 플랫폼 및 기계 명령어

어떠한 프로그래밍 언어로 작성되었든 프로그램 실행을 완료하려면 운영체제와 프로세서를 거쳐야 하므로 여기의 플랫폼은 OS로 구성됩니다. 및 CPU, 소위 플랫폼 독립성은 운영 체제 및 프로세서의 변경으로 인해 소프트웨어가 실행되지 않거나 오류가 실행되지 않음을 의미합니다.

플랫폼마다 고유한 기계 명령어가 있습니다. 소위 플랫폼의 기계 명령어는 플랫폼에서 직접 인식하고 실행할 수 있는 0과 1로 구성된 시퀀스 코드입니다. 동일한 CPU, 다른 OS로 구성된 플랫폼의 기계어 명령어는 다를 수 있습니다

추천 튜토리얼: "java learning"

2. 플랫폼 관련이란 무엇입니까?

C/C++ 프로그램은 플랫폼에 따라 다릅니다. C/C++ 소스 프로그램이 있는 특정 플랫폼은 소스 파일을 컴파일 및 링크하고 기계 명령어를 생성합니다. 즉, 실행 파일은 소스 프로그램의 기계 명령어를 기반으로 생성됩니다. 현재 플랫폼과 동일한 모든 플랫폼에서 이 실행 파일을 실행할 수 있습니다. 그러나 플랫폼마다 기계 명령어가 다를 수 있으므로 C/C++ 소스 프로그램에서 생성된 실행 파일이 모든 플랫폼에서 올바르게 실행된다는 보장은 없습니다. 따라서 플랫폼이 변경되면 플랫폼에 따라 달라지는 새 플랫폼에 맞게 소스 프로그램을 수정하고 다시 컴파일해야 할 수도 있습니다.

C/C++ 프로그램이 크로스 플랫폼이 될 수 없는 근본적인 이유는 C/C++ 소스 프로그램의 컴파일러가 플랫폼에 맞게 컴파일하고, 플랫폼마다 기계 명령어가 다르기 때문에 크로스 플랫폼이 될 수 없기 때문입니다.

3. Java가 크로스 플랫폼이 될 수 있는 이유

C/C++가 크로스 플랫폼이 될 수 없는 이유는 C/C++ 소스 프로그램이 플랫폼에 맞게 컴파일되어 플랫폼과 밀접하게 연관되어 있기 때문입니다. 그러한 환경이 있다면, 이전 버전과 호환(플랫폼과 호환)되고 상위 버전과 호환(프로그램이 실행될 수 있음)이 모두 가능하다면 크로스 플랫폼이 아닐까요? 이러한 원칙에 따라 Java는 컴퓨터 운영 체제에 Java 실행 환경인 JRE(JDK 설치)를 제공합니다.

JRE는 Java 가상 머신, 클래스 라이브러리 및 일부 핵심 파일로 구성됩니다. 즉, 플랫폼이 Java 실행 환경을 제공하는 한 Java로 작성된 소프트웨어를 실행할 수 있습니다.

C/C++와 달리 Java 언어에서 제공하는 컴파일러는 특정 운영 체제 및 CPU 칩에 맞게 프로그래밍하지 않고 Java 소스 프로그램을 Java 가상 머신용 바이트코드라는 "중간 코드"로 컴파일한 다음 자바 가상 머신은 바이트코드를 가상 머신이 위치한 플랫폼의 머신 코드로 변환하고, 현재 플랫폼이 머신 코드를 실행할 수 있도록 하는 역할을 담당합니다.

Java 언어의 작동 원리:

컴퓨터에서 컴파일된 바이트코드 파일(즉, .class 파일)은 Java 런타임 환경이 설치된 모든 컴퓨터에 복사하여 직접 실행할 수 있습니다. 그러면 바이트코드 파일은 가상머신에 의해 해석되고 실행됩니다. 즉, 자바 가상머신은 바이트코드를 로컬 컴퓨터의 기계어 코드로 변환한 후 실행을 위해 기계어 코드를 로컬 운영 체제에 전달합니다.

컴퓨터에서 컴파일된 바이트코드 파일은 자바 런타임 환경이 설치된 어떤 컴퓨터에든 복사해 직접 사용할 수 있기 때문에 바이트코드는 사실 일종의 '중간 코드'이기 때문에 '자바 언어는 한 번만 컴파일하면 된다. 어디서나 실행되므로 Java는 크로스 플랫폼입니다. "그래서 Java는 "반컴파일, 반해석 언어", 즉 소스 프로그램 -> 컴파일 -> 바이트코드 -> ;바이트코드 인터프리터——>머신입니다. 플랫폼에 해당하는 언어. ”

위 내용은 Java 언어 플랫폼이 독립적인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.