Tips:
- JDK ≈ JRE + javac
- JAVA_HOME: jdk安裝的文件夾
關(guān)于包名
全限定類名 即 帶包名的完整的類 防止類名沖突
Full Qualified Name
com.github.DeeJay.pet1.Cat
基本運(yùn)算符中需要注意的:
對(duì)于+
-
*
/
%
等基本運(yùn)算符,需要注意的一點(diǎn)是:
Java中相同類型的數(shù)據(jù)進(jìn)行計(jì)算的結(jié)果也會(huì)是同一類型
即:
int res = 3 / 2;
System.out.println("res = " + res); // res = 1
而不同類型的數(shù)據(jù)進(jìn)行運(yùn)算侵蒙,最終的結(jié)果是按最高的類型來的
double res = 3.0d / 2;
System.out.println("res = " + res); // res = 1.5
對(duì)于
%
要注意的是七扰,取余的結(jié)果是帶符號(hào)的
來看一個(gè)例子:
public static void main(String[] args) {
int res = -9 % 5;
System.out.println("res = " + res); // res = -4
System.out.println("isOdd(3) = " + isOdd(3)); // isOdd(3) = true
System.out.println("isOdd(3) = " + isOdd(-3)); // isOdd(3) = false
}
// 判斷一個(gè)數(shù)字是奇數(shù)
public static boolean isOdd(int number) {
return number % 2 == 1;
}
由于%
帶有符號(hào)五辽,導(dǎo)致判斷是否奇數(shù)的函數(shù)出現(xiàn)了bug
可以改為:
// 判斷一個(gè)數(shù)字是奇數(shù)
public static boolean isOdd(int number) {
// 下面2種方式都行
// return Math.abs(number) % 2 == 1;
return number % 2 != 0;
}
a = a + 1;真實(shí)的運(yùn)算過程為 1.將內(nèi)存中存儲(chǔ)的a的值傳給CPU中的寄存器(register) 2.CPU執(zhí)行+1計(jì)算 3.將計(jì)算后的結(jié)果重新寫回存儲(chǔ)之前a的內(nèi)存中好乐。
關(guān)于自增/減:
跟其他語言一樣:
public static void main(String[] args) {
int a = 0;
int b = 0;
System.out.println("a++ = " + a++); // a++ = 0
System.out.println("++b = " + ++b); // ++b = 1
}
關(guān)于字符串中的+
對(duì)于字符串中的+
操作會(huì)進(jìn)行字符串的拼接(即調(diào)用默認(rèn)的toString())瘾蛋,但是由于Java中的String不可變搁拙,所以JDK會(huì)偷偷使用StringBuider來進(jìn)行字符串的拼接掺炭,從而避免了創(chuàng)建很多零碎的小String對(duì)象辫诅。