1、大部分操作符只能操作基本类型(primitives),只有=、==和!=可以操作对象,另外String支持+和+=
2、在=两边,右值(rvalue)可以是常数、变量或表达式,左值(lvalue)必须是一个变量,即必须有物理空间来存储rvalue
3、对基本类型赋值,是将一个地方的内存复制到了另一个地方
[@more@]1、大部分操作符只能操作基本类型(primitives),只有=、==和!=可以操作对象,另外String支持+和+=
2、在=两边,右值(rvalue)可以是常数、变量或表达式,左值(lvalue)必须是一个变量,即必须有物理空间来存储rvalue
3、对基本类型赋值,是将一个地方的内存复制到了另一个地方
4、为对象赋值时,只是将引用从一个地方复制到另一个地方,如对象a和b,使a=b,则a和b两个引用操作同一个对象,使用a.i改变对象中的i值后,打印b.i,可以看到也被改变了
5、向方法中传递一个对象做参数,实际传递的是对象的引用,所以方法中对对象所做的修改,在方法外仍然持续有效。
6、整数除法会直接去掉结果的小数位,不会进行四舍五入进位
7、用==和!=来比较引用时,指向同一对象的引用相等,否则不等
8、若要比较两个引用指向的两个对象内容是否相等,使用.equal()方法,自定义类型需要自行重载.equal()函数,否则.equal()函数默认比较引用,只有jdk自带类型的.equal()可以直接使用
9、逻辑与、逻辑或、逻辑非(&&、||、!)操作只可以应用于boolean值,不可用于比较非boolean值
10、boolean可以自动转成String
11、短路(short-circuiting)现象:一旦能够明确无误的确定整个表达式的值,程序就不再计算表达式余下的部分了,因此,一个逻辑表达式靠后的部分可能不会被运算。所以要注意是否在逻辑表达式中对变量值进行了修改操作,如果这一部分表达式没有运算,值也就没有被修改
12、位操作符(bitwise operator):按位与(&)、按位或(|)、按位非(~)、异或(^),位运算表达式不会短路
13、移位操作符(shift operator):左移位操作符(<<),低位补0;右移位操作符(>>),若符号为正,则高位补0,若符号为负,则高位补1,即始终维持符号不变;无符号右移位操作符(>>>),无论正负,高位都补0
14、boolean-exp ? value0 : value1,三元操作符,如果boolean表达式为true,则以value0为结果,否则以value1为结果
15、类型转换操作符(casting operator):就是强制转换,一般用于进行窄化转换(narrowing conversion)。java允许由低精度类型向高精度类型自动转换,如把int值赋给long,但反之则必须手工强制转换
16、boolean类型不能和除字符串外的任何类型相互转换。
17、表达式中出现的最大(所占位数最多,如double比int多,不是指数值最大)的数据类型决定了表达式最终结果的数据类型
18、Java中所有的数据类型在所有平台上的大小都是相同的,它被固定在语言中了
19、int(其它数值型也可以)数过大时可能产生溢出,但java无论是编译还是运行时,都不会报这个错误或异常,结果显然是错误的
20、控制程序流程时所用的判断必须是boolean,不允许使用普通数字,必须先转换成boolean,如if(a!=0)
21、迭代(iteration),也可以理解为循环
22、break强行退出循环,跳过循环语句,执行后面的代码,continue停止当次循环,开始下一次循环
23、无穷循环有两种形式:for(;;)或while(true),它们是等价的,使用时要小心,循环体内一定要有break或return之类的语句,且执行它们条件必须是可以满足的
24、可以为循环标上label,之后使用continue label或break label来控制程序流程,语法为在循环定义行前加上"label1:"
25、switch语句的条件和其中各个case都必须是int或char(直接用数字或单引号加字符,如'a'),每个case后别忘了break,否则无法退出来(当然某些特殊情况下你可能并不想退出来,而是想要一次执行多个case,default后就不需要break了,执行过default自然会退出,不过放一个break会使风格看起来更整齐)
26、Math.random()用于产生一个01之间的随机double数,严格的说,它的结果包括0,但不包括1
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。