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、