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

时间:2012-01-01 12:49:12

标签: java

由于java中的每个类都是Object的子类,并且java中的变量本身不是对象,而是对象引用,为什么java类型规范是必需的,当Object类型可以隐式时?唯一可能的时候是使用简单数据类型。

4 个答案:

答案 0 :(得分:4)

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

例如:

Object str = "abc";

s.toUpppercase();  //Compiler error

答案 1 :(得分:1)

好。 Java之所以这样做是因为..这就是语言的定义方式。 这可以归结为语言设计时(近20年前)被认为是良好的实践,并且还具有易于开发的编译器。

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

答案 2 :(得分:0)

答案可能是Java是一种面向对象的语言,用于大型项目并由合理的公司创建。如此强大的打字减少了潜在错误的数量,您可以在编译级别删除。

顺便说一句。 在.NET产品中,您有var x这样的东西。但它只能在方法体中本地使用。但这只是开发人员的编译糖。所以Java只是强类型语言的一个例子。

答案 3 :(得分:-1)

Java是一种强类型语言。需要这些类型才能在编译时编译代码并验证类型兼容性。

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

原则是:在开发过程中,bug会花费x,在QA期间会花费x * 10,如果到达生产,则需要x * 100。编译器和强类型语言允许减少到达QA的(愚蠢)错误的数量,从而使软件开发更容易,更快速和更便宜。