首頁 >常見問題 >靜態語言和動態語言有什麼差別?

靜態語言和動態語言有什麼差別?

不言
不言原創
2019-04-03 15:37:2637106瀏覽

靜態語言和動態語言有什麼差別?

靜態語言與動態語言的差異:

區別一:

#靜態語言是在編譯時變數的資料型別即可確定的語言,多數靜態型別語言要求在使用變數前必須宣告資料型別;例如C/C 是靜態型別語言的典型代表,其他的靜態型別語言還有C# 、JAVA 等。

動態語言是在執行時間決定資料類型的語言。變數使用之前不需要型別聲明,通常變數的型別是被賦值的那個值的型別;像是Python 和 Ruby 是一種典型的動態型別語言,其他的各種腳本語言如 JavaScript 也屬於動態型別語言。

區別二:

靜態類型語言編譯時會進行類型比對檢查,所以不能給變數不同類型的值。為了解決這個問題,靜態類型的物件導向語言通常透過向上轉型的技術來取得多態的效果。

動態類型語言的變數類型在運行期間是可變的,這意味著物件的多態性是與生俱來的。一個物件能否執行某個操作,只取決於有沒有對應的方法,而不取決於它是否是某種類型的物件。

區別三:

靜態語言的優點:

#由於類型的強制聲明,使得IDE有很強的程式碼感知能力,故在實現複雜的業務邏輯、開發大型商業系統、以及那些生命週期很長的應用中,依托IDE對系統的開發很有保障;

由於靜態語言相對比較封閉,使得第三方開發包對程式碼的侵害性可以降到最低;

動態語言的優勢:

編寫的程式碼數量更少,看起來更簡潔,可以把精力更多地放在業務邏輯上。雖然不區分類型在某些情況下會讓程式變得難以理解,但整體而言,程式碼量越少,越專注於邏輯表達,對閱讀程式越有幫助。

以上是靜態語言和動態語言有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多