高手真經 13條Java核心技術
、>>>最高位用0填充,>>最高位用符號位填充 ,沒有<<。
2、強制轉換是直接截斷,要四舍五入的話需要用Math.round();
3、boolean不要于任何數值類型進行轉換。除非b?1:0
4、Java沒有內置字符串類型。
5、String類沒有提供用于修改字符串的方法,方便字符串共享。
6、C++重載了==,可以用它來檢測字符串的相等性。Java沒有重載。C也不用==對字符串進行比較,而使用strcmp函數。Java的compareTo()方法與strcmp類似。
greeting.compareTo("Hello")==0 |
7、length()返回代碼單元數量;
codePointCount()返回代碼點數量。
charAt(n)將返回位置n的代碼單元,n介于0-s.length()-1。
得到第i個代碼點,
|
|
返回一個與構建器或緩沖器相同的字符串。
8、輸入: Scanner類位于 java.util.*
Console類可以實現控制臺讀取密碼:
|
9、被格式化的參數索引:
System.out.printf("%1$s %2$tB %2$te %2$ty", "Due date:" , new Date()); |
10、文件的輸入與輸出:
|
如果用一個不存在的文件構造一個Scanner,或者用一個不能被創建的文件名構造一個PrintWriter,那么就會發異常。
11、如果整數,浮點不能滿足精度要求,可以使用java.math包中的兩個類:BigInteger 和 BigDecimal
BigInteger a = BigInteger.valueOf(100); |
不能使用+ *來處理大數值,而是add 和multiply方法。
12、
for(variable : collection) statement; |
打印數組更見的方法: Arrays.toString(a); //返回一個包含數組元素的字符串。
數組的初始化:
|
Java允許數組長度為0。
允許數組拷貝,這是兩個變量引用同一個數組。如果要拷貝到一個新的數組 需要使用Arrays.copyOf(number , length),通常用這個方法來增加數組的大小,剩余的數值賦0,布爾型賦false。
Java數組與C++數組在堆棧上有很大不同,但基本上與分配在heap上的數組指針一樣。
int[] a = new int[100]; //java []被預定義為檢查數組邊界,而沒有指針運算,即不能通過a+1得到數組下一個元素。 |
不同于
int a[100] //c++ |
而等同于
int *a = new int[100]; //c++ |
數組排序: sort
快速打印一個二維數組的數據元素列表:Arrays.deepToString(a);
Java實際上只有一維數組。
13、命令行參數
java Message -g cruel world args[0]: "-g" args[1]:"cruel" args[2]: world |