가상 머신 클래스 마운트 메커니즘과 new 대상의 과정
2001 단어 JVM
VM 클래스 로드 메커니즘:
클래스는 가상 컴퓨터 메모리에 불러오기 시작해서 메모리를 마운트 해제할 때까지 전체 생명주기는 불러오기, 검증, 준비, 해석, 초기화, 사용과 마운트 7단계를 포함한다.이 중 검증, 준비, 해석 세 단계가 연결된다.불러오기, 검증, 준비, 초기화, 마운트 등 몇 단계의 순서는 고정적이며, 해석 단계는 반드시 정해지지 않으며, 일부 상황에서 초기화 단계 이후에 시작할 수 있다. 이것은 자바 언어의 운행을 지원하기 위한 귀속 (동적 귀속 또는 말기 귀속) 이다.
new 객체 절차: A a=new A();
A a=new A();
PS. 왜 이런 위탁 메커니즘을 채택해야 합니까?
이 문제를 이해하려면 먼저 ClassLoader의 개념인'명명 공간'을 도입해야 한다. 이것은 하나의 클래스를 확정하려면 클래스의 제한된 이름과 이런 클래스를 불러오는 ClassLoader가 공동으로 확정해야 한다는 것을 말한다.즉, 두 클래스의 전체 이름이 같아도 서로 다른 클래스가 불러오기 때문에 JVM에서 클래스가 다르다는 것이다.명명 공간을 이해한 후에 우리는 의뢰 모델을 살펴보자. 의뢰 모델을 사용한 후에 서로 다른 ClassLoader의 상호작용 능력을 강화했다. 예를 들어 위에서 말한 JDK 본생이 제공한 라이브러리, 예를 들어hashmap,linkedList 등이다. 이런 종류는boostrap 클래스 캐리어에 불러온 후에 프로그램에 몇 개의 클래스 캐리어가 있든 이런 종류는 사실 공유할 수 있다.이렇게 하면 서로 다른 종류의 마운트가 같은 이름의 다른 종류를 불러와서 혼란을 초래하는 것을 피할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IntelliJ IDEA 2019.2의 새로운 기능 프로파일 러를 사용해 보았습니다.이번의 새로운 기능은 초호화! 저는 퍼포먼스 개선을 자주 합니다만, IntelliJ IDEA에도 프로파일링 툴이 붙게 되었으므로, 사용해 보았습니다. 편리한 것 같았기 때문에, 앞으로의 메인 웨폰은 이것이 될 것 같...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.