下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

java运算符常规操作规则和Java没有“sizeof”

作者:课课家教育     来源: http://www.kokojia.com点击数:681发布时间: 2016-02-01 13:40:21

标签: java语言java编程0基础学习java

大神带你学编程,欢迎选课

  使用运算符的一个缺点是括号的运用经常容易搞错。即使对一个表达式如何计算有丝毫不确定的因素,都容易混淆括号的用法。这个问题在java里仍然存在。

java运算符常规操作规则和Java没有“sizeof”_java语言_java编程_课课家

  在C和C++中,一个特别常见的错误如下:

  while(x = y) {

  //...

  }

  程序的意图是测试是否“相等”(==),而不是进行赋值操作。在C和C++中,若y是一个非零值,那么这种赋值的结果肯定是true。这样使可能得到一个无限循环。在Java里,这个表达式的结果并不是布尔值,而编译器期望的是一个布尔值,而且不会从一个int数值中转换得来。所以在编译时,系统就会提示出现错误,有效地阻止我们进一步运行程序。所以这个缺点在Java里永远不会造成更严重的后果。唯一不会得到编译错误的时候是x和y都为布尔值。在这种情况下,x = y属于合法表达式。而在上述情况下,则可能是一个错误。

  在C和C++里,类似的一个问题是使用按位AND和OR,而不是逻辑AND和OR。按位AND和OR使用两个字符之一(&或|),而逻辑AND和OR使用两个相同的字符(&&或||)。就象“=”和“==”一样,键入一个字符当然要比键入两个简单。在Java里,编译器同样可防止这一点,因为它不允许我们强行使用一种并不属于的类型。

  在C和C++中,sizeof()运算符能满足我们的一项特殊需要:获知为数据项目分配的字符数量。

  在C和C++中,size()最常见的一种应用就是“移植”。不同的数据在不同的机器上可能有不同的大小,所以在进行一些对大小敏感的运算时,程序员必须对那些类型有多大做到心中有数。

  例如,一台计算机可用32位来保存整数,而另一台只用16位保存。显然,在第一台机器中,程序可保存更大的值。正如您可能已经想到的那样,移植是令C和c++程序员颇为头痛的一个问题。

  Java不需要sizeof()运算符来满足这方面的需要,因为所有数据类型在所有机器的大小都是相同的。我们不必考虑移植问题——Java本身就是一种“与平台无关”的语言。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程