java之路,基礎知識1
簡單
1、類似c++
2、摒棄c++中容易發生錯誤的特性,如指標、結構、列舉、記憶體管理等
3、java提供豐富豐類庫,方便開發
物件導向
支援繼承、過載、多型等特性
安全
1、刪除了指標和釋放記憶體的操作,防止非法記憶體操作。
2、java的安全體系架構確保本地java程式碼的安全性
與平臺無關
java程式碼被編譯成結構中立的中間檔案格式,它被編譯成與機器無關的位元組碼,在java虛擬機器上執行
java直譯器執行的過程:
執行JVM位元組碼的工作是由直譯器來完成的。解釋執行過程分三步進行:程式碼的裝入、程式碼的校驗和程式碼的執行。裝入程式碼的工作由“類裝載器”(class loader)完成。類裝載器負責裝入執行一個程式需要的所有程式碼,這也包括程式程式碼中的類所繼承的類和被其呼叫的類。當類裝載器裝入一個類時,該類被放在自己的名字空間中。除了通過符號引用自己名字空間以外的類,類之間沒有其他辦法可以影響其它類。在本臺計算機上的所有類都在同一地址空間內,而所有從外部引進的類,都有一個自己獨立的名字空間。這使得本地類通過共享相同的名字空間獲得較高的執行效率,同時又保證它們與從外部引進的類不會相互影響。當裝入了執行程式需要的所有類後,直譯器便可確定整個可執行程式的記憶體佈局。直譯器為符號引用同特定的地址空間建立對應關係及查詢表。通過在這一階段確定程式碼的記憶體佈局,Java很好地解決了由超類改變而使子類崩潰的問題,同時也防止了程式碼對地址的非法訪問。
隨後,被裝入的程式碼由位元組碼校驗器進行檢查。校驗器可發現運算元棧溢位,非法資料型別轉換等多種錯誤。通過校驗後,程式碼便開始執行了。
java位元組碼的兩種執行方式:
1、即時編譯方式:直譯器先將位元組碼編譯成機器碼,然後再執行該機器碼。
2、解釋執行方式:直譯器通過每次解釋並執行一小段程式碼來完成Java位元組碼程 序的所有操作。
通常採用的是第二種方法。由於JVM規格描述具有足夠的靈活性,這使得將位元組碼翻譯為機器程式碼的工作具有較高的效率。對於那些對執行速度要求較高的應用程式,直譯器可將Java位元組碼即時編譯為機器碼,從而很好地保證了Java程式碼的可移植性和高效能。
相關文章
- Java基礎——程式設計之路的開始,Java基礎知識Java程式設計
- Java基礎知識總結-1Java
- Java基礎知識題集(1)Java
- 1、基礎知識
- Java基礎知識Java
- 【smile】自學.NET之路-基礎知識
- 初識Java Java基礎知識Java
- java基礎語法知識小結(1)Java
- PHP 基礎知識-1PHP
- DDD基礎知識1
- 機器學習基礎知識1機器學習
- 1.基礎知識
- DS #1 基礎知識
- 《Java工程師成神之路-基礎篇》Java基礎知識——String相關Java工程師
- Java基礎概念知識Java
- java基礎知識點Java
- Java基礎知識(二)Java
- Java SE 基礎知識Java
- 《Java工程師成神之路-基礎篇》Java基礎知識——序列化(已完結)Java工程師
- Python基礎知識1Python
- 【1】測試基礎知識
- Java併發--基礎知識Java
- Java基礎知識點梳理Java
- Java基礎知識——異常Java
- Java基礎知識總結Java
- Java基礎知識面試題Java面試題
- Java基礎知識七——方法Java
- Java 基礎面試知識點Java面試
- Java基礎知識回顧Java
- JAVA基礎知識補漏Java
- Java&Android 基礎知識梳理(1) 註解JavaAndroid
- 《java程式設計基礎》java的基礎知識(三)Java程式設計
- corejava基礎知識(1)-繼承Java繼承
- WebAPI基礎知識學習(1)WebAPI
- rac基礎知識溫習(1)
- JS基礎知識總結(1)JS
- 【Java基礎知識】Java流程控制Java
- java基礎知識-序列化/反序列化-gson基礎知識Java