国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java易忘,易錯,重難點整合

2019-11-06 08:03:55
字體:
來源:轉載
供稿:網友

前言:

很多人會有這樣一個體會,java學了好幾遍了,可有時敲代碼時對某些知識點還是不能記憶猶新,模棱兩可。還是得翻書,百度查資料。為了擺脫這個毛病,寫下這篇博文,把易忘的,易錯的知識點,以及重點難點,寫下來,便于參考與記憶。次數多了,就會記在腦海里了。

一、equals()方法與“==”

這個方法真的是困擾了我好幾次了。一直沒明白它到底比較的是什么。今天把它揪出來問問吧。 首先來說下“==”,它是用來比較兩個對象在堆內存的首地址,即用來比較兩個引用變量是否指向同一個對象。當然了,這是對兩個引用類型來說的。如果是8大基礎類型,自然就是兩個值想不想等了。那equals呢?equals()是object類的一個方法。如果子類不重寫equals()方法,那么它和“==”的比較是一樣的。也是比較兩個引用變量是否指向同一個對象。下面舉幾個例子看看。

String s1 = new String( "123"); String s2 = new String( "123"); String s3 ="456"; String s4 ="456"; StringBuffer s5 = new StringBuffer("a"); StringBuffer s6 = new StringBuffer("a"); System.out.PRintln(s1==s2); //false System.out.println(s3==s4); //true System.out.println(s5==s6); //false System.out.println(s1.equals(s2)); //true System.out.println(s3.equals(s4)); //true System.out.println(s5.equals(s6)); //false

看了上面的例子是不是有想法:s1.equals(s2)是true, s5.equals(s6)卻又是false,這是為何?因為String類重寫了equals()方法。比較的是兩個字符串的值是不是相等。而StringBuffer沒有重寫。所以結果如此。

//String 類重寫的equals(); public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = count; if (n == anotherString.count) { int i = 0; while (n-- != 0) { if (charAt(i) != anotherString.charAt(i)) return false; i++; } return true; } } return false; }

這一比較,心理總算踏實了,再也不會犯錯了。

二、異常Exception

可能,我又記不起哪些是運行時異常了。整理下吧! 異常Exception(廣義、體系) Throwable 可拋的,是所有異常和錯誤的父類 Error 嚴重的問題,不需要程序去處理 Exception(狹義) 可能需要程序去處理 RuntimeException 運行時異常,它和它的子類都是非受檢異常 1.非受檢異常: 可以不對其進行異常處理,通過嚴謹的編碼邏輯就可以避免的異常如:ArrayIndexOutofBoundsException、NullPointerException、ClassCastException、ArithmeticException… 2.受檢異常:是Exception的子類但不是RuntimeException的子類,都是受檢異常,受檢異常必須要進行異常處理。如:FileNotFoundException、IOException、MalformedURLException、ClassNotFoundException… 3.如何處理異常:try、catch、finally try 嘗試運行可能出現異常的代碼 catch 捕捉某一類型的異常對其進行處理 try{ 代碼1 }catch(異常類型 引用名){ 代碼2 }finally{ 代碼3 } 代碼1是要嘗試運行的可能出現異常的代碼 代碼2是捕捉到某種類型(小括號里的類型)異常要執行的處理邏輯 代碼3是無論任何情況都會被最終執行的代碼,用于收尾工作

今天暫時寫這兩點。以后遇到了,再添加!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富蕴县| 永吉县| 碌曲县| 临沭县| 天水市| 武安市| 海晏县| 云和县| 香港 | 新邵县| 合川市| 青川县| 南京市| 昌都县| 桦川县| 荆州市| 壤塘县| 郁南县| 南木林县| 乌什县| 阿克陶县| 巴林左旗| 甘泉县| 连州市| 宁乡县| 苏尼特左旗| 辽宁省| 平舆县| 瓦房店市| 安顺市| 武威市| 灵台县| 青海省| 阿拉尔市| 金沙县| 溧阳市| 赤城县| 安仁县| 山东| 屏南县| 富平县|