자바는 어떤 언어에 속하나요?
Java 언어는 해석형 언어라고 할 수 있는데, 컴파일된 Java 코드는 기계가 인식할 수 있는 언어가 아니라 바이트코드이므로 직접 실행할 수 없고 다양한 플랫폼에서 실행하려면 jvm 해석이 필요하기 때문입니다. .
Java 언어
Java 언어는 모든 Java 코드를 컴파일해야 하기 때문에 컴파일되었다고 할 수 있으며, .java는 컴파일 없이는 쓸모가 없습니다. 코드는 컴파일 후에 직접 실행할 수 없습니다. JVM에서 해석되어 실행되므로 해석됩니다.
그러나 현재 JVM에는 효율성을 위한 일부 JIT 최적화 기능이 있습니다. .class의 바이너리 코드를 로컬 코드로 컴파일하여 직접 실행하게 되므로 다시 컴파일하게 됩니다.
C나 C++처럼 한번의 컴파일 후에 운영체제가 이해할 수 있는 타입으로 직접 컴파일하고 바로 실행할 수 있으므로 컴파일된 언어입니다. 두 번째 처리가 없으면 Java는 먼저 컴파일러에 의해 .class 유형의 파일로 컴파일됩니다. 그런 다음 가상 머신(JVM)을 통해 .class 파일에서 한 줄을 읽습니다. 각 행을 해석하고 실행합니다. 따라서 해석된 언어이며 Java는 여러 운영 체제에 대해 서로 다른 JVM을 가지고 있으므로 Java는 진정한 크로스 플랫폼입니다.
Java의 가상 머신 메커니즘
(1) Java 언어 컴파일 -->설명--->실행 프로세스
(2)Java 가상 머신
컴파일 컴파일된 언어 및 해석 언어
컴파일 언어: 완성된 모든 소스 프로그램을 바이너리 코드로 컴파일하여 실행 가능한 프로그램입니다. 그런 다음 프로그램을 직접 실행할 수 있습니다.
통역언어 : 준비된 소스 프로그램의 한 문장을 번역한 뒤, 그 문장을 끝까지 실행해보세요!
차이점
컴파일된 언어는 실행 속도가 빠르고 효율성이 높습니다. 컴파일러에 의존하며 크로스 플랫폼이 적습니다.
통역된 언어는 실행 속도가 느리고 효율성이 낮으며 통역사에 의존하며 크로스 플랫폼 성능이 좋습니다.
요약
개인적으로 Java는 해석형 언어라고 생각합니다. Java도 컴파일해서 .class 파일로 만들어야 하지만 기계가 인식할 수 있는 언어가 아니라 바이트코드와 궁극적으로 JVM이 필요합니다. 설명해야만 다양한 플랫폼에서 실행될 수 있으며, 이는 Java가 크로스 플랫폼인 이유이기도 합니다. 그래서 자바는 컴파일과 인터프리터를 모두 한다고 할 수 있지만, 개념적 정의로 분류해야 한다면 자바를 인터프리터 언어로 분류해야 하는 게 아닐까 걱정됩니다.
위 내용은 자바는 어떤 언어에 속하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT
더 현명한 결정을 위한 AI 기반 투자 연구

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

UnourDeviceandCarriersUpportWi-FicallingandableItinsettings — IPHONE : 설정> 전화> WI-FICALLING; Android : 설정> 네트워크 및 인터넷> MobiLenetWork> 고급> Wi-Ficalling; volictCarrierCorcomPatibilityAndCompleteEmergendDressre

toimplement comparableinjava, definetecomparetomethodfornaturalordering.1. implement comparableinterface.2.overridecomparetoToretOreturnnegative, zero, orpositivevaluesbasedoncomparison

Amplements 키워드를 사용하여 인터페이스를 구현하십시오. 이 클래스는 인터페이스에서 모든 메소드의 특정 구현을 제공해야합니다. 여러 인터페이스를 지원하고 메소드가 공개되도록 쉼표로 분리됩니다. Java 8 이후의 기본 및 정적 메소드는 다시 작성할 필요가 없습니다.

togetafileextensioninjava, uselastindexof () tofindthelastDotandextractSubstringAtfterit, forcleanercode, useapachecommonsio, geTeLeAtlensions ()

속성 클래스를 사용하여 Java 구성 파일을 쉽게 읽으십시오. 1. config.properties를 리소스 디렉토리에 넣고 getClassLoader (). getResourCeasStream ()을 통해로드하고로드 () 메서드를 호출하여 데이터베이스 구성을 읽습니다. 2. 파일이 외부 경로에있는 경우 FileInputStream을 사용하여로드하십시오. 3. GetProperty (키, 기본값)를 사용하여 누락 된 키를 처리하고 기본값을 제공하여 예외 처리 및 입력 확인을 보장합니다.
![압축 (ZIPPER) 폴더 오류 : 액세스 거부 [고정]](https://img.php.cn/upload/article/001/431/639/175711056270360.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
ifyougetan "AccessDenied"오류가 발생했을 때, trythesesteps : 1.RunfileExplorerAsAdminStrator.2.takeOwnshipTeFolder.3.ModifySmentStoallowfullControl.4.copythefiletoauser-Accessiblelocation.5.ucommand troptract (usecommand troptract)

MethodOverLoveLowsMultipleMethodswithSamenameButDifferentParametersInaclass.1.ItimProvesCodeReadabilityBySupportingVariedInputs.2.differencesMustBeInParameterNumber, Type, OrOrder —NOTRETURNTYPEALONE.3.3.Example : Calculator Classwith whithD

Lambda 표현식은 기능적 인터페이스의 코드를 단순화하는 데 사용됩니다. 예를 들어, ()-> system.out.println ( "Hello")은 매개 변수 인쇄가 없음을 의미합니다. runnableTask = ()-> system.out.println ( "Running ...")은 익명 클래스를 대체합니다. (A, B)-> A B는 바이린 포퍼 레이터 인터페이스를 구현합니다. Collections.Sort (이름, (A, B)-> A.Compareto (B)와 같은 비교기, 소비자 및 기타 인터페이스에 종종 사용됩니다.
