?????? 值類型: 每個實例都會保留的有一份獨有的數據拷貝,一般以結構體、枚舉或者元組的形式出現。
?????? 引用類型:每個實例共享同一份數據來源,一般以類的形式出現。
?????? 用通俗的話來說就是,值類型就像是復印一份報告一樣,復印了之后,修改原件上的內容,復印件的內容不會改變;而復制一個引用類型,則相當于我共享我的電腦給你使用,當你改變我電腦里面的數據時,我使用的時候數據就會變為你改變的。可能舉例有些不生動、形象,但是希望看官能夠明白我所說的意思。
值類型和引用類型的區別:
?????? 值類型和引用類型最明顯的區別在于被復制之后。當一個值類型被復制的時候,就相當于創造了一個完全獨立的實例,這個實例有屬于自己的獨有的數據,不會因為其他實例的數據變化而有所改變。而引用類型的復制,在改變一個實例的時候,另一個實例也會隨之改變。
什么時候該用值類型呢:
1.要用==運算符來比較實例的數據時;
2.希望某個實例的拷貝能保持獨立的狀態時;
3.數據會被多個線程所使用時;
什么時候該用引用類型呢:
1.要用==運算符來比較實例的身份時;
2.希望創建一個共享的可變對象時;