java試題

1)Overload和Override的區別

方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱爲方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

(2)String Stringbuffer和StringBuilder的區別

StringBuffer線程安全的可變字符序列。一個類似於 String 的字符串緩衝區,但不能修改。雖然在任意時間點上它都包含某種特定的字符序列,但通過某些方法調用可以改變該序列的長度和內容。

可將字符串緩衝區安全地用於多個線程。可以在必要時對這些方法進行同步,因此任意特定實例上的所有操作就好像是以串行順序發生的,該順序與所涉及的每個線程進行的方法調用順序一致。

StringBuffer 上的主要操作是 append 和 insert 方法,可重載這些方法,以接受任意類型的數據。每個方法都能有效地將給定的數據轉換成字符串,然後將該字符串的字符追加或插入到字符串緩衝區中。append 方法始終將這些字符添加到緩衝區的末端;而 insert 方法則在指定的點添加字符。

例如,如果 z 引用一個當前內容是“start”的字符串緩衝區對象,則此方法調用 z.append("le") 會使字符串緩衝區包含“startle”,而 z.insert(4, "le") 將更改字符串緩衝區,使之包含“starlet”。

通常,如果 sb 引用 StringBuilder 的一個實例,則 sb.append(x) 和 sb.insert(sb.length(), x) 具有相同的效果。

只要發生有關源序列(如在源序列中追加或插入)的操作,該類就只在執行此操作的字符串緩衝區上而不是在源上實現同步。

每個字符串緩衝區都有一定的容量。只要字符串緩衝區所包含的字符序列的長度沒有超出此容量,就無需分配新的內部緩衝區數組。如果內部緩衝區溢出,則此容量自動增大。從 JDK 5 開始,爲該類補充了一個單個線程使用的等價類,即 StringBuilder。與該類相比,通常應該優先使用 StringBuilder 類,因爲它支持所有相同的操作,但由於它不執行同步,所以速度更快。

java.lang.StringBuilder一個可變的字符序列。此類提供一個與 StringBuffer 兼容的 API,但不保證同步。該類被設計用作 StringBuffer 的一個簡易替換,用在字符串緩衝區被單個線程使用的時候(這種情況很普遍)。如果可能,建議優先採用該類,因爲在大多數實現中,它比 StringBuffer 要快。

在 StringBuilder 上的主要操作是 append 和 insert 方法,可重載這些方法,以接受任意類型的數據。每個方法都能有效地將給定的數據轉換成字符串,然後將該字符串的字符追加或插入到字符串生成器中。append 方法始終將這些字符添加到生成器的末端;而 insert 方法則在指定的點添加字符。

例如,如果 z 引用一個當前內容爲“start”的字符串生成器對象,則該方法調用 z.append("le") 將使字符串生成器包含“startle”,而 z.insert(4, "le") 將更改字符串生成器,使之包含“starlet”。

通常,如果 sb 引用 StringBuilder 的實例,則 sb.append(x) 和 sb.insert(sb.length(), x) 具有相同的效果。每個字符串生成器都有一定的容量。只要字符串生成器所包含的字符序列的長度沒有超出此容量,就無需分配新的內部緩衝區。如果內部緩衝區溢出,則此容量自動增大。

將 StringBuilder 的實例用於多個線程是不安全的。如果需要這樣的同步,則建議使用 StringBuffer。

(3)Integer和int區別

Integer是一個類.對它的操作要通過類的方法
int是JAVA缺省的8中基本數據類型之一.不是類的對象.

Integer類把int基本數據類型包裝起來了,提供了一些方法如parseInt()等。

(4)基本數據類型/構造數據類型/指針類型/空類型

在C語言中,數據類型可分爲:基本數據類型,構造數據類型,指針類型,空類型四大類。

1.基本數據類型

  基本數據類型最主要的特點是,其值不可以再分解爲其它類型。也就是說,基本數據類型是自我說明的。

2.構造數據類型

  是根據已定義的一個或多個數據類型用構造的方法來定義的。也就是說,一個構造類型的值可以分解成若干個“成員”或“元素”。每個“成員”都是一個基本數據類型或又是一個構造類型。在C語言中,構造類型有以下幾種:
·數組類型
·結構類型
·聯合類型

3.指針類型

  指針是一種特殊的,同時又是具有重要作用的數據類型。其值用來表示某個量在內存儲器中的地址。雖然指針變量的取值類似於整型量,但這是兩個類型完全不同的量,因此不能混爲一談。4.空類型在調用函數值時,通常應向調用者返回一個函數值。這個返回的函數值是具有一定的數據類型的,應在函數定義及函數說明中給以說明,例如在例題中給出的max函數定義中,函數頭爲: int max(int a,int b);其中“int ”類型說明符即表示該函數的返回值爲整型量。又如在例題中,使用了庫函數 sin,由於系統規定其函數返回值爲雙精度浮點型,因此在賦值語句s=sin (x);中,s 也必須是雙精度浮點型,以便與sin函數的返回值一致。所以在說明部分,把s說明爲雙精度浮點型。但是,也有一類函數,調用後並不需要向調用者返回函數值,這種函數可以定義爲“空類型”。其類型說明符爲void。在第五章函數中還要詳細介紹。在本章中,我們先介紹基本數據類型中的整型、浮點型和字符型。其餘類型在以後各章中陸續介紹。
發佈了35 篇原創文章 · 獲贊 2 · 訪問量 955
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章