強類型和弱類型主要是站在變量類型處理的角度進行分類的。
強類型是指不允許隱式變量類型轉換,若類型則允許隱式類型轉換。
所以,關鍵在於變量數據類型的轉換。
什么叫隱式類型轉換?
隱式是指源碼中沒有明顯的類型轉換代碼,也就是說,一個變量,你可以直接給他賦值字符串,也可以直接給他賦值數值,你還可以讓字符串類型的變量和數值類型的變量相加,雖然得出最終結果未必是你想象的那樣,但一定不會包旭哦。
這就是隱式類型轉換,弱類型語言,如 javascript、php。
Java 是強類型語言,不允許隱式轉換,也就是說,如果你需要拿一個字符串變量當做整型類用,你必須顯示的將變量類型轉換好。
換句話說:
- 強類型語言,當你定義一個變量是某個類型,如果不經過代碼顯示轉換(強制轉換)過,它就永遠都是這個類型,如果把它當做哦其他類型來用,就會報錯。
- 若類型語言,你想把這個變量當做什么類型來用,就當做什么類型來用,語言的解析器會自動(隱式)轉換。
比較
對於開發者來說,一般很少去想,選擇什么語言開發,而是去想我學了這門語言,如何找到這門語言的工作。
但其實,語言的選擇是存在的。
比如,你負責一個項目,在做選擇的時候,弱類型與強類型的一些優缺點,就是需要考慮的因素。
