日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中容易混淆的方法_java中容易混淆的概念

發布時間:2024/9/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中容易混淆的方法_java中容易混淆的概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java中容易混淆的概念

1. 談談 final, finally, finalize 的區別final—修飾符(關鍵字)如果一個類被聲明為 final,意味著它不能再派生出新的子類,不 能作為父類被繼承。因此一個類不能既被聲明為 abstract 的,又被聲明為 final 的。將變量或 方法聲明為 final,可以保證它們在使用中不被改變。被聲明為 final 的變量必須在聲明時給定初 值,而在以后的引用中只能讀取,不可修改。被聲明為 final 的方法也同樣只能使用,不能重載finally—再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那么相匹 配的 catch 子句就會執行,然后控制就會進入 finally 塊(如果有的話)。finalize—方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出 去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象 調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以 整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象 調用的。 2. Anonymous Inner Class (匿名內部類) 是否可以 extends(繼承)其它類,是否可以 implements(實現)interface(接口)?匿名的內部類是沒有名字的內部類。不能 extends(繼承) 其它類,但一個內部類可以作為 一個接口,由另一個內部類實現。 3. Static Nested Class 和 Inner Class 的不同。Nested Class (一般是 C++的說法),Inner Class (一般是 JAVA 的說法) 。Java 內部類 與 C++嵌套類最大的不同就在于是否有指向外部的引用上。注: 靜態內部類(Inner Class )意味著 1 創建一個 static 內部類的對象,不需要一個外部 類對象,2 不能從一個 static 內部類的一個對象訪問一個外部類對象 4. // throws an Assertionerror if a <= 0 斷言可以有兩種形式: assert Expression1 ; assert Expression1 : Expression2 ; Expression1 應該總是產生一個布爾值。 Expression2 可以是得出一個值的任意表達式。這個值用于生成顯示更多調試信息的 String 消息。 斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4 標記: javac -source 1.4 Test.java 要在運行時啟用斷言,可使用 -enableassertions 或者 -ea 標記。 要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions 標記。 要系統類中啟用斷言,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用 斷言。 可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用于驗證傳遞給私有方 法的參數。不過,斷言不應該用于驗證傳遞給公有方法的參數,因為不管是否啟用了斷言, 公有方法都必須檢查其參數。不過,既可以在公有方法中,也可以在非公有方法中利用斷 言測試后置條件。另外,斷言不應該以任何方式改變程序的狀態。 8. GC 是什么? 為什么要有 GC? (基礎)GC 是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。 要請求垃圾收集,可以調用下面的方法之一: System.gc() Runtime.getRuntime().gc() String s = new String(“xyz“); 創建了幾個 String Object? 兩個對象,一個是“xyx”,一個是指向“xyx”的引用對象 s。Math.round(11.5)等於多少? Math.round(-11.5)等於多少?Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;short s1 = 1; s1 = s1 + 1; 有什么錯? short s1 = 1; s1 += 1;有什么錯?short s1 = 1; s1 = s1 + 1;有錯,s1 是 short 型,s1+1 是 int 型,不能顯式轉化為 short 型。可修改為 s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1 正確。 9. sleep() 和 wait() 有什么區別? sleep()方法是使線程停止一段時間的方法。在 sleep 時間間隔期滿后,線程不一定立 即恢復執行。這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執行, 除非(a)“醒來”的線程具有更高的優先級;(b)正在運行的線程因為其它原因而阻塞 wait()是線程交互時,如果線程對一個同步對象 x 發出一個 wait()調用,該線程會暫停 執行,被調對象進入等待狀態,直到被喚醒或等待時間到。 10. Java 有沒有 goto? Goto—java 中的保留字,現在沒有在 java 中使用。 11. 數組有沒有 length()這個方法? String 有沒有 length() 這個方法? 數組沒有 length()這個方法,有 length 的屬性。 String 有 length()這個方法。 12. Overload 和 Override 的區別。Overloaded 的方法是否可以改變返回值的類型? 方法的重寫 Overriding 和重載 Overloading 是 Java 多態性的不同表現。 重寫 Overriding 是父類與子類之間多態性的一種表現, 重載 Overloading 是一個類中多態性的一種表現。如果在子類中定義某方法與其父類 有相同的名稱和參數,我們說該方法被重寫 (Overriding) 。子類的對象使用這個方法時, 將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義 了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載 (Overloading)。Overloaded 的方法是可以改變返回值的類型。 13. Set 里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用==還是 equals()? 它們有何區別? Set 里的元素是不能重復的,那么用 iterator() 方法來區分重復與否。equals()是判讀兩個 Set 是否相等。

總結

以上是生活随笔為你收集整理的java中容易混淆的方法_java中容易混淆的概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。