變量
1.對(duì)局部變量,要先賦值,后使用。
2.一個(gè)局部變量,作用域,是定義它的
代碼塊!
public class Test{
public static void main(String[] args){
{
int a = 4;
}
System.out.println(a);
}
}
a的作用域在main里面的兩個(gè)括號(hào)之間。所以,此程序編譯不通過。cannot resolve symbol
3.對(duì)于兩個(gè)局部變量,在同一作用域內(nèi)不允許兩個(gè)同名變量出現(xiàn)。
public class Test{
public static void main(String[] args){
int a = 6;
{
int a = 4;
}
System.out.println(a);
}
}
在小代碼塊,重了。Duplicate local variable a。
------------------------------
命名規(guī)范
1.語義
2.包,所有字母小寫
3.類,所有單詞首字母大寫
4.變量、方法,首字母小寫,其余單詞首字母大寫
5.常量,所有字母大寫
byte b=1;
b=b+1;報(bào)錯(cuò),因?yàn)閎+1運(yùn)算后,系統(tǒng)轉(zhuǎn)為int,無法隱式轉(zhuǎn)換
b+=1;不報(bào)錯(cuò)。請(qǐng)查看JVM,字節(jié)碼差異。
>> 右移 除2,左補(bǔ)符號(hào)位
<< 左移 乘2,右補(bǔ)0
>>> 右移,左永遠(yuǎn)補(bǔ)0
雖然比乘除運(yùn)算符快,但是有問題。
12>>32
回變?yōu)?2。
12&9 按位與
12|9 或
12^9 異或
(a>b)&(c>d)
非短路方式,都判斷,并不會(huì)因?yàn)閍>b為假而不進(jìn)行后面表達(dá)式的判斷。
(a>b)&&(c>d)
短路方式,a>b為假,后面不執(zhí)行,直接返回false。
int i = 3;
int count = (i++)+(i++)+(i++);
count = 3 + 4 + 5
i=4 i=5 i=6
int i =3;
i = i++;
那么流程如下
i++這個(gè)表達(dá)式的值是3。然后執(zhí)行i自加1,變?yōu)?(因?yàn)?+操作比賦值優(yōu)先級(jí)高),最后i 再次被賦值為3。
不記運(yùn)算符優(yōu)先級(jí),最好用括號(hào)老解決,很明白,否則像這樣的b+++a表達(dá)式,實(shí)際上(b++)+a。