1. 程式人生 > >面試題-談談對java的認識

面試題-談談對java的認識

Java的基本認識
1、基本介紹
Java是一種跨平臺的面向物件的開發語言。具有 簡單性,面向物件,分散式,解釋型,可靠,安全,平臺無關,可一直,高效能,多執行緒,動態性等特點。


2、具體分析
Java是一種面向物件的開發語言:(參見面向物件)
平臺無關性:
Java的平臺無關性指的是java語言編寫的程式不用修改就可以執行在不同軟硬體的平臺上。平臺無關性分為:原始碼級和目的碼級。C和C++具有一定程度的原始碼級別平臺無關,表明C,C++編寫的程式不用修改只需要重新編譯就可以在不同平臺上執行。
Java主要是依靠Java虛擬機器(JVM)在目的碼級別實現平臺無關性。JVM是一種抽象機器,運行於作業系統之上,自身有一套機器指令,並有自己的棧,暫存器等。但是JVM通常是軟體商而不是在硬體上實現的。
可靠性安全性:Java源於C++但又消除了C++的很多不可靠元素。首先java不支援指標,杜絕了記憶體的非法訪問;其次記憶體自動回收機制;java直譯器執行時試試檢查,防止陣列和字串訪問越界;java提供異常處理機制
多執行緒:C和C++採用單執行緒體系結構,Java支援多執行緒
多執行緒的表現:
java虛擬機器是採用多執行緒的方式執行多個java程式
java語言內建多執行緒控制,簡化多執行緒程式開發,Java提供的Thread類可以支援程式設計師方便的使用多執行緒。
java的多執行緒受制於作業系統,如果作業系統不支援多執行緒則java的多執行緒無法表現


3、java的記憶體回收機制(參見java記憶體回收機制初窺)


4、java的優點
a、不是用指標:省去了使用指標對記憶體操作的混亂
b、垃圾回收
c、平臺無關性
d、支援多執行緒


5、java的缺點
a、效率低:(以下分析效率低的原因)
限制記憶體操作帶來的副作用,不能直接操作內;
垃圾回收機制;
解釋執行;
多型(java多型是執行是實現的,C,C++多型是編譯連線時候實現的)
平臺無關性的副作用(不能直接呼叫系統API,需要使用自己的API隱式呼叫系統API,多了一層呼叫,使用JNI解決這個問題)
b、逆向編譯的問題
c、使用swing等包開發桌面程式比較痛苦