1、判斷不是否奇數: 不能i%2==1, 注意負數;應該是i%2!=0;
2. 2.0-1.1 的值, 因為計算機無法表示double的1.1,
3、long a = 24*60*60*1000*1000; //微秒
long b = 24*60*60*1000; //毫秒
a/b的值不是1000, 因為24*60*60*1000*1000是int*int*int*int*int,再把int值賦給long的a,但是int值越界。 更正:
long a =24l*60*60*1000*1000; //微秒
long b =24l*60*60*1000; //毫秒
計算long時要加l
4、 . 要用的轉義字元 \\.
5. 慎用單引號,因為char有可能轉為int
6、j=j++; j不會自增
7、注意運算子% *的優先順序,實在不清楚就加括號
public static void main(string args)
} system.out.println(minutes);
}
先計算m%60,再計算*了,可能得不到預期的結果
8、finally不一定會執行,程式退出就不執行finally了(程式退出:system.exit(0))
9、遍歷集合用iterator, 不要用列舉element
10、response.getwriter(), response.getoutputstream()不能同時用
11. super()和this()區別:
this():當前類的無參構造方法, super():父類的無參構造方法。
12. overload與override的區別:
overload是編譯時多型,返回值可以相同也可以不相同;
override是執行時多型, 作用域要大於等於父類
13. final類的特點: 不能再被繼承, 裡面的方法不能被重寫;裡面變數都是static
14. 得到class的三種方法:1. 像 string.getclass(); 2.class.forname("");3.有些類如integer有特殊的就去得到
char型中可以儲存中文漢字, 因為char型可以儲存unicode, unicode包括漢字, 2個位元組
15. sleep()和wait()區別: sleep()不會放棄物件鎖,時間到了自動醒,接著執行;wait()會放棄物件鎖, 要等同乙個物件的notify方法才能醒。
16. include兩種實現方式區別:
<%include%> 靜態包含
動態包含
Java併發中的一些概念
併發和並行這兩個概念經常被大家所混淆。併發是指多個任務交替的進行,並行是指多個任務同時進行。所以單核cpu只能實現併發,不能實現並行。同步是指任務的執行,必須完全結束才能繼續執行後續任務。非同步是指任務開始執行後,將任務放在另外乙個執行緒中執行,本執行緒直接就可以繼續執行後續任務。比如乙個人拿著水杯...
java的一些感念
1 物件的初始化 1 非靜態物件的初始化 在建立物件時,物件所在類的所有資料成員會首先進行初始化。基本型別 int型,初始化為0。如果為物件 這些物件會按順序初始化。構造方法的作用就是初始化。2 靜態物件的初始化 程式中主類的靜態變數會在main方法執行前初始化。不僅第一次建立物件時,類中的所有靜態...
字串輸入的一些陷阱
字串的輸入是很基礎的問題,不過其中的陷阱也不少。最關鍵的規避陷阱的方法就是心裡清楚輸入緩衝 stdio 裡還有什麼?以下是十分常見的 之一,其中scanf c ch 也經常用getchar ch 來寫,它們是一樣的。它們有乙個優秀之處是,所有的符號,甚至eof都能獲取並返回。while ch n 如...