一、 表达式操作符、类型
+、-、*、/、%、~、^、&、|、!还有?:这些操作符与C++并没有别的区别,连=也是一样的。不过Java去掉了C++中臭名昭著的操作符重载(=为引用复制,不允许重载),这样我们就不用担心看见一个操作符满天飞的代码了。不过Java为String类型加上了“+"这一点在现在大多数语言中都已经是常规了。
在类型上,Java与C++也并无太大差异,但是Java明显比C++更安全、更具有可读性。Java将布尔(boolean)类型拿出了来,不允许用其他类型与布尔类型进行操作,其他类型也不行使布尔类型的作用,比如判断必须是布尔型或布尔表达式,而不能用一个整数或字符串。虽然这样死板一些,但是我们不会看到一些神来之笔的代码了。Java还强制要求窄化转换时,必须强制转换,这样程序更加不容易出错。
总的来说,Java在运算操作上加强了可读性和安全性。
二、控制流程
if、if-else、while、do-while、switch和C++真的是一模一样,switch多道选择依旧是只允许整数(和枚举)。
for语句中,除C++原本的外,Java加入了foreach语法
for (var i : iterable[]) {}
就是将iterable[]中的每一个对象的引用复制到i中,然后对i进行操作。但是Java没有给Python那样好的支持,比如range,所以for语句没有统一化。