面試——談談你對Java 平臺的理解

經典回答

Java語言是一種面向對象的高級語言,它最顯著的有兩個特性,一是經過平臺中立的class文件格式和屏蔽底層硬件差別的jvm實現‘一次編寫,處處運行’;二是經過‘垃圾收集器’管理內存的分配和回收。java

Java 是一種簡單、嚴謹而且適合編寫的語言,它不像C/C++ 那樣有不少晦澀難懂的內容,如頭文件、指針、結構等等。咱們編寫java 會接觸到 JRE(Java Runtime Environment)或者 JDK(Java Development Kit)。 JRE,也就是 Java 運行環境,包含了JVM 和豐富的 Java 類庫,好比集合,泛型,反射,併發,網絡,IO/NIO等。而 JDK 能夠做是 JRE 的一個超集,提供了更多工具,好比編譯器、各類診斷工具等,讓java 語言更加安全、健壯。還有更多第三方類庫的支持,如spring、springmvc、mybatis等讓java 很是適合開發。spring

不少對Java 的影響是它很慢,由於它是解釋執行。其實不是這樣的,Java 是解釋執行+編譯執行混合型。通常JVM 是直接解釋執行.class文件,當出現高頻代碼時JVM 會經過JIT 即時編譯器把常常運行的代碼做爲"熱點代碼"編譯與本地平臺相關的機器碼,並進行各類層次的優化。編程

知識點

一、Java是純面向對象的語言。《Java編程思想》中提到Java語言是一種「Everything is object」的語言,它可以直接反映現實生活中的對象,例如車、動物等,所以經過它編寫程序更容易。數組

二、平臺無關性。Java語言能夠「一次編譯,處處執行」。不管是在Windows平臺仍是在Linux、MacOS等其餘平臺上對Java程序進行編譯,編譯後的程序在其餘平臺上均可以運行。因爲Java是解釋性語言,編譯器會將Java代碼變成「中間代碼」,而後在Java虛擬機(Java Virtual Machine,JVM)上解釋執行。因爲中間代碼與平臺無關,所以Java語言能夠很好的跨平臺執行,具備很好的可移植性。安全

三、Java提供了不少內置的類庫,經過這些類庫,簡化了開發人員的程序設計工做,同時縮短了項目的開發時間,例如,Java語言提供了對多線程的支持,提供了對網絡通訊的支持,最主要的是提供了垃圾回收器,這使得開發人員從內存的管理中解脫出來。網絡

四、提供了對Web應用開發的支持。例如,Applet、Servlet和JSP能夠用來開發Web應用程序;Socket、RMI能夠用來開發分佈式應用程序。mybatis

五、具備較好的安全性和健壯性。Java語言常常被用在網絡環境中,爲了加強程序的安全性,Java語言提供了一個防止惡意代碼攻擊的安全機制(數組邊界檢測和Bytecode校驗等)。Java的強類型機制、垃圾回收器、異常處理和安全檢查機制使得用Java語言編寫的程序具備很好的健壯性。多線程

六、去除了C++語言中難以理解、容易混淆的特性,如頭文件、指針、結構、單元、運算符重載、虛擬基礎類、多重繼承等,使得程序更加嚴謹簡潔。併發

相關文章
相關標籤/搜索