程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 10個Java面試題及答案,java面試題及答案

10個Java面試題及答案,java面試題及答案

編輯:JAVA綜合教程

10個Java面試題及答案,java面試題及答案


  1. 什麼是JVM? 為什麼稱Java為跨平台的編程語言?
  Java虛擬機(Java Virtual Machine)是可以執行Java字節碼的虛擬機,每個Java源文件將被編譯成字節碼文件,然後在JVM中執行。Java之所以被設計成可以在任意的平台運行,而不需要重寫或者在不同的平台下重新編譯,這些都要歸功於Java虛擬機(JVM),因為JVM非常了解特定的指令的長度以及底層硬件平台的特殊性。
  2. JDK和JRE之間的差異是什麼?
  Java運行環境(Java Runtime Enviroment) 是運行Java程序的基本的Java虛擬機,包括執行applet的浏覽器插件。JDK (Java Development Kit) 是為了開發,編譯和執行Java應用程序,針對Java的全功能的軟件開發包,包含了JRE,編譯器和工具(比如說 JavaDoc 和Java Debugger)。
  3.Java面向對象編程的幾個特征及具體的特性?
  Java面向對象編程有其非常明顯的特性,比如說封裝,繼承,多態和抽象。
  1)封裝,提供的對象隱藏內部特性和行為的一種能力,每個對象提供了一些方法,其他的對象可以訪問並改變其內部數據。在Java中,提供了三種訪問修飾符: 公有的,私有的以及保護的。每個修飾符都設定了不同的訪問權限,這個權限設置不會因為包的不同而有差異,可以通過鏈接訪問博為峰網校的Java面向對象教程(http://www.atstudy.com/course/180)查看關於封裝更多的細節和實例。
  2)多態,就是針對不同的基礎數據類型呈現相同接口的一種能力,多態類型就是其操作可以適用於不同類型值的一種類型。
  3)繼承,提供了一個對象從基類獲取字段和方法的一種能力.繼承提供了代碼的重用性,並且在不更改現有類的情況下,對現有類增加額外的功能。
  4)抽象,是從具體的實例中分離想法的過程,根據他們各自的功能而非具體的實現來開發類. Java中支持創建和存在暴露接口的抽象類, 而沒有包括方法的具體實現。抽象方法的宗旨就是將類的行為和具體實現分離開。
  4. 在靜態方法裡可以訪問非靜態變量嗎?
  Java 中的 static 變量歸相應的類所有,它的值對於類的所有實例都是相同的。static 變量是在 JVM 加載類的時候初始化的。如果代碼試圖訪問非靜態的變量,而且不是通過類的實例去訪問,編譯器會報錯,因為這些非靜態變量還沒有被創建呢,並且它們沒有與實例相關聯。
  5. 在Java中什麼是方法的 Override(覆蓋) 和 Overload(重載)?
  Java中方法的 overload 發生的條件是,同一個類裡,有兩個或以上的方法名稱完全相同,但參數列表不同。另一方面,方法的 override 是指,子類重定義了父類裡的同一個方法。Override 的方法必須方法名、參數列表和返回類型都完全相同。Override 的方法不會限制原方法的訪問權限。
  6.Java支持多繼承嗎?
  Java不支持多繼承,每個類只允許繼承一個類,但是可以實現多個接口。
  7.進程與線程的區別?
  進程是一個程序的執行(即正在運行的程序), 然而線程是在進程中獨立的執行序列. 一個進程可以包含很多線程. 線程有時被稱為輕量級的進程.
  8. Java中垃圾回收的目的是什麼, 它什麼時候被使用 ?
  垃圾回收用於識別和丟棄程序不再需要的對象, 以便回收和復用資源.
  9. finalize()什麼時候被調用 ? 它的目的是什麼 ?
  finallize方法是在釋放該對象內存前由gc(垃圾回收器)調用. 通常建議在這個方法中釋放該對象持有的資源.
  10.如果一個對象的引用被設置為null, gc會立即釋放該對象的內存麼?
  不會,這個對象將會在下一次gc循環中被回收。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved