靜態語言和動態語言的區別


基本概念

靜態語言(強類型語言)

靜態語言是在編譯時變量的數據類型即可確定的語言,多數靜態類型語言要求在使用變量之前必須聲明數據類型。 
例如:C++、Java、Delphi、C#等。

動態語言(弱類型語言)

動態語言是在運行時確定數據類型的語言。變量使用之前不需要類型聲明,通常變量的類型是被賦值的那個值的類型。 
例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。

強類型定義語言

強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,如果不經過強制轉換,那么它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變量a,那么程序根本不可能將a當作字符串類型處理。強類型定義語言是類型安全的語言。

弱類型定義語言

數據類型可以被忽略的語言。它與強類型定義語言相反, 一個變量可以賦不同數據類型的值。強類型定義語言在速度上可能略遜色於弱類型定義語言,但是強類型定義語言帶來的嚴謹性能夠有效的避免許多錯誤。

兩者區別

特性

強類型語言是一旦變量的類型被確定,就不能轉化的語言。 
弱類型語言則反之,一個變量的類型是由其應用上下文確定的。

靜態語言的優勢

  1. 由於類型的強制聲明,使得IDE有很強的代碼感知能力,故,在實現復雜的業務邏輯、開發大型商業系統、以及那些生命周期很長的應用中,依托IDE對系統的開發很有保障;
  2. 由於靜態語言相對比較封閉,使得第三方開發包對代碼的侵害性可以降到最低;

動態語言的優勢

    1. 思維不受束縛,可以任意發揮,把更多的精力放在產品本身上;
    2. 集中思考業務邏輯實現,思考過程即實現過程;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM