

2.Hierarchy 顯示Java繼承層次結構,選中類后F4


3.eclipse行號的顯示與隱藏




7.繼承抽象類,或者實現接口
a:以前做法 先寫類,然后在類中在去繼承類或者實現接口
b:現在做法 在創建類的時候,選擇要繼承的類或者實現的接口。
Object是所有類的父類,所有類都直接或者間接的繼承自Object。

看到Override說說這是什么,有什么用。(起注解的作用)

一個可以使用正則表達式來解析基本類型和字符串的簡單文本掃描器。
1 需求:統計一個字符串中大寫字母字符,小寫字母字符,數字字符出現的次數。(不考慮其他字符) 2 * 舉例: 3 * "Hello123World" 4 * 結果: 5 * 大寫字符:2個 6 * 小寫字符:8個 7 * 數字字符:3個 8 * 9 * 分析: 10 * 前提:字符串要存在 11 * A:定義三個統計變量 12 * bigCount=0 13 * smallCount=0 14 * numberCount=0 15 * B:遍歷字符串,得到每一個字符。 16 * length()和charAt()結合 17 * C:判斷該字符到底是屬於那種類型的 18 * 大:bigCount++ 19 * 小:smallCount++ 20 * 數字:numberCount++ 21 * 22 * 這道題目的難點就是如何判斷某個字符是大的,還是小的,還是數字的。 23 * ASCII碼表: 24 * 0 48 25 * A 65 26 * a 97 27 * 雖然,我們按照數字的這種比較是可以的,但是想多了,有比這還簡單的 28 * char ch = s.charAt(x); 29 * 30 * if(ch>='0' && ch<='9') numberCount++ 31 * if(ch>='a' && ch<='z') smallCount++ 32 * if(ch>='A' && ch<='Z') bigCount++ 33 * D:輸出結果。 34 * 35 36 */ 37 public class StringTest2 { 38 public static void main(String[] args) { 39 //定義一個字符串 40 String s = "Hello123World"; 41 42 //定義三個統計變量 43 int bigCount = 0; 44 int smallCount = 0; 45 int numberCount = 0; 46 47 //遍歷字符串,得到每一個字符。 48 for(int x=0; x<s.length(); x++){ 49 char ch = s.charAt(x); 50 51 //判斷該字符到底是屬於那種類型的 52 if(ch>='a' && ch<='z'){ 53 smallCount++; 54 }else if(ch>='A' && ch<='Z'){ 55 bigCount++; 56 }else if(ch>='0' && ch<='9'){ 57 numberCount++; 58 } 59 } 60 61 //輸出結果。 62 System.out.println("大寫字母"+bigCount+"個"); 63 System.out.println("小寫字母"+smallCount+"個"); 64 System.out.println("數字"+numberCount+"個"); 65 } 66 }
// char[] toCharArray():把字符串轉換為字符數組。
// static String valueOf(char[] chs):把字符數組轉成字符串。
5.StringBuffer的刪除功能
(API)一個可變的字符序列。此類提供一個與 StringBuffer兼容的 API,但不保證同步(效率較高,安全性低)。該類被設計用作 StringBuffer
的一個簡易替換,用在字符串緩沖區被單個線程使用的時候(這種情況很普遍)。如果可能,建議優先采用該類,因為在大多數實現中,它比 StringBuffer 要快。
Integer iii = null;
1:要求必須是5-15位數字
2:0不能開頭
=================================================================
不用正則表達式的做法
System.gc()可用於垃圾回收。當使用System.gc()回收某個對象所占用的內存之前,通過要求程序調用適當的方法來清理資源。在沒有明確指定資源清理的情況下,Java提高了默認機制來清理該對象的資源,就是調用Object類的finalize()方法。finalize()方法的作用是釋放一個對象占用的內存空間時,會被JVM調用。而子類重寫該方法,就可以清理對象占用的資源,該方法有沒有鏈式調用,所以必須手動實現。



從程序的運行結果可以發現,執行System.gc()前,系統會自動調用finalize()方法清除對象占有的資源,通過super.finalize()方式可以實現從下到上的finalize()方法的調用,即先釋放自己的資源,再去釋放父類的資源。
但是,不要在程序中頻繁的調用垃圾回收,因為每一次執行垃圾回收,jvm都會強制啟動垃圾回收器運行,這會耗費更多的系統資源,會與正常的Java程序運行爭搶資源,只有在執行大量的對象的釋放,才調用垃圾回收最好
15.System.exit(0)

divisor
- 此 BigDecimal 要除以的值。
scale
- 要返回的 BigDecimal 商的標度。(也就是保留多少位小數)
roundingMode
- 要應用的舍入模式。(一般用ROUND_HALF_UP----即四舍五入)
23.Date類一個綜合案例----你來到這個世界多少天
附:接口 ListIterator<E>有如下幾個方法(迭代器修改元素)

方法1如圖








?表示任意的類型都是可以的

? extends E:向下限定,E及其子類

? super E:向上限定,E極其父類

(留意以上截圖哪些行報錯了)

增強for其實就是(用來替代)迭代器

重寫equals方法

優化后(哈希值不再一樣,通過哈希值與成員變量相加來重寫hashCode方法避免不必要的比較)

但實際上,一般不自己想寫這么麻煩,可以用代碼自動生成功能來實現


以后解決HashSet 存儲自定義對象時元素不唯一問題就可以用重寫hashCode()方法和equals()方法解決






12.最后附上一個致命bug 關於eclipse:
eclispe 控制台光標位置bug
Eclipse控制台輸入數據后光標直接回到行首不跳到下一行
留意光標位置,要手動移動至下一行

