簡體   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