繁体   English   中英

为什么Java需要类型标识符?

[英]Why does java need type identifiers?

由于java中的每个类都是Object的子类,并且java中的变量不是对象本身而是对象引用,所以当Object类型可以隐式使用时,为什么java强制强制类型说明? 似乎唯一需要的时间是使用简单数据类型时。

如果变量的类型为Object ,则编译器将不允许您将变量用作其他任何类型(除非您强制将其强制转换)。
这称为类型安全。

例如:

Object str = "abc";

s.toUpppercase();  //Compiler error

好。 Java之所以这样做,是因为这是语言的定义方式。 这归结为在设计语言时(近20年前)公认的良好实践,并且易于开发。

Scala是一种与Java紧密相关的语言(在同一JVM上运行),在大多数情况下不需要显式类型标识符。 缺点是scala编译器要慢得多(这是出于其他原因)。

答案可能是Java是大型项目中使用的,由合理的公司创建的面向对象语言。 如此强大的键入功能可以减少潜在错误的数量,因此您可以在编译级别将其删除。

顺便说一句 在.NET产品中,您有诸如var x类的东西。 但是它只能在方法体内局部使用。 但这只是开发人员的编译器糖。 因此,Java只是强类型语言的一个示例。

Java是一种强类型语言。 需要类型,以便能够在编译时编译代码并验证类型兼容性。

弱类型语言没有类型。 例如,当您在JavaScript中说var x ,您只需定义变量。 然后,可以在此处分配任何类型的值。 这意味着,例如,如果您的代码有错误,并且您将字符串分配给该变量,然后尝试将该变量除以2( y = x / 2 ),则脚本将在运行时失败。 Java不允许您编译此类代码。

有一个原则:错误在开发过程中花费x,在质量检查过程中花费x * 10,如果到达生产则花费x * 100。 编译器和强类型语言可以减少到达QA的(愚蠢)错误的数量,从而使软件开发更容易,更快,更便宜。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM