原创 Math類中ceil、floor和round的用法

Math類中提供了三個與取整有關的方法:ceil、floor、round,這些方法的作用與它們英文名稱的含義對應,例如,ceil的英文意義是天花板,該方法就表示向上取整,Math.ceil(11.3)的結果爲12,Math.cei

原创 面向對象的特徵有哪些方面?

1.封裝: 封裝是保證軟件部件具有優良的模塊性的基礎,封裝的目標就是要實現軟件部件的“高內聚、低耦合”,防止程序相互依賴性而帶來的變動影響。在面向對象的編程語言中,對象是封裝的最基本單位,面向對象的封裝比傳統語言的封裝更爲清晰、

原创 接口和抽象類的繼承和實現

問題:接口是否可以繼承接口?抽象類是否可以實現接口?抽象類是否可以繼承具體類?抽象類中是否可以有靜態的main方法? 答案: 全都可以。只要明白接口、抽象類和普通類的區別即可。

原创 靜態變量和實例變量的區別

在語法定義上:靜態變量前要加static關鍵字,而實例變量前不加。 在程序運行上:實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量纔會被分配內存空間,才能使用這個實例變量。靜態變量屬於類,也稱爲類變量,只要程序加載

原创 String對象不可變

String s = "Hello"; s = s + " world!"; 這兩行代碼執行後,原始的String對象中的內容是否改變? 不會改變。因爲String類爲final類型,它的所有對象都是不可變對象。在這段代碼中,s原

原创 Integer與int的區別

int是Java提供的8種原始數據類型之一。Java爲每個原始類型提供了封裝類,Integer是Java爲int提供的封裝類。int的默認值爲0,而Integer的默認值爲null,即Integer可以區分出未賦值和值爲0的區別

原创 Overload和Override的區別

Overload是重載的意思;Override是覆蓋的意思,也就是重寫。 重載Overload表示同一個類中可以有多個名稱相同的方法,但這些方法的參數列表各不相同(即參數個數或類型不同)。 重寫Override表示子類中的方法

原创 內部類

內部類就是在一個類的內部定義的類,內部類中不能定義靜態成員,內部類可以直接訪問外部類中的成員變量,內部類可以定義在外部類的方法外面,也可以定義在外部類的方法體中。 在方法體外面定義的內部類的訪問類型可以是public,prote

原创 接口和抽象類的區別

語法區別: 1.抽象類可有有構造方法,接口中不能有構造方法。 2.抽象類中可以有普通成員變量,接口中沒有普通成員變量。 3.抽象類中可以包含非抽象的普通方法,接口中所有方法都必須是抽象的,不能有非抽象的普通方法。 4.抽象

原创 空指針

下面代碼有什麼不妥之處? 1.if(username.equals("zxx")){} username可能爲NULL,會提示空指針錯誤;改爲"zxx".equals(username) 2.int x=1; return x

原创 匿名內部類是否可以繼承其他類或實現接口

可以。而且必須實現接口或繼承其他類。

原创 String類是最基本的數據類型嗎?

基本數據類型包括boolean、byte、char、short、int、long、float、double。 String類是final類型的,不可以繼承這個類,也不能修改這個類。爲了提高效率節省空間,我們應該用StringBu

原创 抽象方法是否可以是靜態的,是否可以是native,是否可以是synchronized

1.抽象方法不能是靜態的,因爲抽象方法要被子類實現,而靜態方法屬於一個類,不能同時屬於兩個類。 2.native方法表示該方法要用另外一種依賴平臺的語言實現,不存在着被子類實現的問題,所以不能是抽象的,即abstract與nat

原创 String s = new String("xyz");創建了幾個String對象?

如果常量“xyz”以前使用過,那麼可以直接利用常量池中的“xyz”來new一個新的String對象,這時,創建了一個對象。 如果沒有使用過“xyz”,那麼會先在常量池中創建“xyz”對象,然後再new一個新的String對象,這

原创 是否可以從一個static方法內部調用一個非static方法?

不可以。 因爲非static方法屬於某個對象,也叫實例方法,必須創建一個對象後,纔可以調用該對象的該非static方法。 而static方法(靜態方法)也叫類方法,屬於某個類,可以直接通過類名調用,不用創建對象。 也就是說