JAVA 基礎知識(小收藏)

今天早上看了一份關於北理工的卷子,覺得不錯,做了下,就當是看看最近自己java的學習還有什麼漏洞

下面是關於這份卷子http://blog.csdn.net/bitfan/archive/2010/12/13/6072690.aspx

 

然後作者也給出了對卷子的點評

http://blog.csdn.net/bitfan/archive/2010/12/18/6083926.aspx

http://blog.csdn.net/bitfan/archive/2010/12/18/6083935.aspx

 

我對比了下,把我覺得理解不是很深刻的題記錄下作者的點評,方便以後查漏

 

判斷題

 

2.        通過在程序中引入“ import javax.swing.*; ”語句,就可以使用 javax.swing 包中的所有類(包括其嵌套的子包中的類)。  

(錯)

       要使用嵌套子包中的類,必須再次添加 import 子句

 

7.   Java Applet 可運行於瀏覽器中,這意味着瀏覽器本身就可以直接執行 Applet 程序。(錯)

    瀏覽器本身只認識HTML,它對其他類型信息的支持,比如Flash,Applet,Silverlight應用程序等都是通過啓動本地計算機安裝的附加插件來實現的。

 

簡答題

 

1.   現代編程語言有兩種主要的類型:一種是“編譯型 ”的,比如 C ,程序源碼必須經過編譯才能運行;另一種是“解釋型 ”的,這種類型的語言(比如早期的 Basic )通常都擁有一個交互環境,用戶輸入一句代碼計算機就執行一句代碼。

    Java 屬於上述哪種類型?如果你認爲 Java 不屬於上述任何一種類型,那麼它是不是一種新的編程語言類型?

    Java源程序需要編譯,但運行時需要即時“解釋”爲本地CPU能執行的機器指令,所以它不屬於“純”的編譯型或解釋型,而是一種混合類型。(我之前一直認爲java是解釋型的,悲勒個劇)

 

 

5.   加法運算符“+”可以施加於原始數值類型(比如 int )的變量,但我們發現一些對象類型(比如 Integer ) 的變量,也支持“+”運算: 

 

 

 

    Integer v1 = 100;

 

    Integer v2 = 200;

 

    System.out.println(v1+v2 );  //輸出: 300

 

 

 

    這看上去好象 Integer 類型重載了 “ + ” 法運算符,一些編程語言比如 C ++可以爲特定的類重載運算符,但 Java 本身並不支持運算符重載這一特性。依你的理解或猜測, Java 是採用什麼方法讓兩個 Integer 對象可以直接“相加”的? 

 

 

 

    上面代碼首先是調用Integer.valueOf方法將整數轉換爲Integer對象,當兩個Integer對象相加時,其實是使用Integer.intValue方法取出其所“包裝”的整數值,相加之後,再將結果輸出。 

 

    上述結論是通過分析javap反彙編示例代碼得到的。 

 

    諸如Java和C#之類的編程語言,許多現象已不僅僅是語法問題,編譯器在其中起了很重要的作用。我在課堂上已經介紹過如何使用javap去反彙編.class文件,通過閱讀Java編譯器生成的字節碼指令去弄明白java編譯器在後臺玩的把戲。 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章