3.1 java運算符
幾乎所有的運算符都只能操作主類型,=,==,!=除外。String支持+ ,+=。
3.1.2賦值
左面=右面
右面無論變量,表達式,常數,只要能夠產生一個值得,左面必須變量,它有物理空間。
%模運算符號,取餘數。
/ 取 值
3.1.5 關係運算符
==,!=比較的是對象的內存地址是否相當,而不是對象內容是否相等。
對象的equals()方法比較對象內容是否相等。
但是equals的默認行爲是比較句柄,所以除非自己的類覆蓋了equals(),否則不會比較內容。java的很多類都實現了equals(),所以比較對象內容。java.object的equal方法比較的是句柄。
短路:對於邏輯表達式,只要執行了一部分能夠明確判斷表達式的值,就不必要全部執行下去了。
3.1.7移位運算符
<<,>>,>>>移位運算符號,進行移位前,char,byte,short會進行自動轉化爲int,只有右側的5位低位纔會被用到。
3.1.10java中用到逗號的唯一場所就是for 循環。 +號操作字符串,會把加法中的所有變量變成字符串。
例如:int x=0,y=1,z=2. String sring="x,y,z";System.out.println(string+x+y+z);這個計算結果可以把x,y,z轉化爲對應的字符。
3.11兩個足夠大的int執行乘法運算的時候,結果就會溢出,而且不會從編譯器受到出錯提示(這個可以作爲軟件測試的bug引入點)
例子:int i=0x7ffffff;//max of int
int bigger=i*4;
System.out.println(s);
輸出結果:-4
3.2.2return
static int test2(int testval){
if(testval>target)
return -1;
if(testval<target)
return +1;
return 0;
3.2.5for(初始表達式;布爾表達式;步進)
下面一個例子表示在時間未到設定的時間到達之前:一直做某事情。
for(;Runtime.gettime()<theSettime;)
{ ajfkaljfafl;
asdjas
}
3.2.5 逗號運算符
java中唯一使用到逗號的只有for循環。可以在for語句中的初始表達式,步進表達式中,使用一系列逗號。
for(int i=1,j=i+10;i<5;i++,j=i*2)
3.2.6 中斷和繼續
任何循環主題中,可以使用break,continue,break用於強行退出循環,contimue用於停止執行當前的反覆,回到循環起始、
3.2.7 switch(int 或者char)
switch(整數選擇因子){
case 整數值1:語句;break;
case 整數2:語句:break;
default:語句;break;//編程風格考慮,加上break;
}
float 或者double造型成int 或者char後,總是去掉小數部分。
Math.random()-->{0,1) 能夠得到萬物起始點0、