按位与或非和逻辑与或非的区别:
两者运算结果一样,但是逻辑与或非在确定表达式真假时就不继续往下运算了,而按位与或非将运算到底,尽管它可能在之前的运算中就确定了整个表达式的真假。
操作符:
C#、C++可以重载操作符,Java不可以。
数据类型转换:
Java允许将任何基本数据类型转换成其他基本类型,但是布尔型除外。大范围到小范围可能会因截尾丢失精度,若要得到舍入的结果,就需要使用java.lang.Math中的round方法。
Java没有sizeof:
在C和C++中sizeof后面跟的是数据分配的字节数,其主要作用是为了移植性。因为在C和C++中,相同的数据类型在不同位数的机器所占存储空间不一样,但是Java固定了基本类型的大小,故没有必要存在sizeof。
for循环:
Java里唯一用到逗号操作符的是for循环的控制表达式,在控制表达式的初始化和步进控制部分,可以适用一系列由逗号分隔的语句,而且那些语句都会单独执行。
注意:通过适用逗号操作符,可以在for语句里定义多个变量,但是各变量必须是同一类型。
for(int i = 1, j = i + 10; i <5; i++, j = i * 2)
foreach:
foreach,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。
任何返回一个数组的方法都可以适用 foreach。
for(float x : f ) //其中f是某个数组
对于下面的语句,foreach将不起作用。
for(int i = 0; i < 100; i++)
return:
两个作用:一为返回值;二为退出当前方法,并返回那个值。
无穷循环:
for(;;)和while(true)。
"臭名昭著"的goto:
goto起源于汇编语言,其功能为若A成立,则跳转到这里,否则跳转到那里。goto语句是在源码级上的跳转,若程序总是从一个地方跳转到另一个地方,这显得程序的控制流程难以识别,这使其招致了不好的声誉,而Edsger Dijkstra发表著名论文《goto有害》之后,众人开始痛斥goto的不是。其实真正的问题不在于goto,而在于goto的滥用。而且少数情况下,goto依然是最好的组织控制流程的手段。
尽管Java的保留字中有goto,但在语言中并未使用它,Java没有goto。然而Java也能完成类似的跳转操作,这与break和continue有关。(注意只是类似跳转,实则为中断迭代)
标签是后面跟有冒号的标识符。标签的作用是让continue、break中断循环,直到标签所在的地方。
关于break、continue具体中断过程将在下篇博文中详细介绍。