簡單類型參數是值傳遞,對象參數是引用傳遞

  • = 是賦值操做(任何包含=的如+=、-=、 /=等等,都內含了賦值操做)。再也不是你之前理解的數學含義了,而+ - * /和 = 在java中更不是一個級別,換句話說, = 是一個動做,一個能夠改變內存狀態的操做,一個能夠改變變量的符號,而+ - * /卻不會。這裏的賦值操做實際上是包含了兩個意思:一、放棄了原有的值或引用;二、獲得了 = 右側變量的值或引用。Java中對 = 的理解很重要啊!!惋惜好多人忽略了,或者理解了卻沒深思過。
  • 對於基本數據類型變量,= 操做是完整地複製了變量的值。換句話說,「=以後,你我已無關聯」;至於基本數據類型,就不在這科普了。
  • 對於非基本數據類型變量,= 操做是複製了變量的引用。換句話說,「嘿,= 左側的變量,你丫別給我瞎動!咱倆如今是一根繩上的螞蚱,除非你再被 = 一次放棄現有的引用!!上面說了 = 是一個動做,因此我把 = 看成動詞用啦!!」。而非基本數據類型變量你基本上能夠
  • 參數自己是變量,參數傳遞本質就是一種 = 操做參數是變量,全部咱們對變量的操做、變量能有的行爲,參數都有。因此把C語言裏參數是傳值啊、傳指針啊的那套理論全忘掉,參數傳遞就是 = 操做

連接:https://www.zhihu.com/question/31203609/answer/51473602

java

 Java基本類型共有八種,基本類型能夠分爲三類,字符類型char,布爾類型boolean以及數值類型byte、short、int、long、float、doublegit

 

 

在經過valueOf方法建立Integer對象的時候,若是數值在 [-128,127] 之間,便返回指向IntegerCache.cache中已經存在的對象的引用;不然建立一個新的Integer對象。github

Integer、Short、Byte、Character、Long這幾個類相似;app

 

public class Main {
    public static void main(String[] args) {
        Integer i1 = 100;
        Integer i2 = 100;
        Integer i3 = 200;
        Integer i4 = 200;
        
        System.out.println(i1==i2);
        System.out.println(i3==i4);
    }
}

  因此上述代碼輸出結果:
  true
  falsespa

  輸出結果代表 i1 和 i2 指向的是同一個對象,而 i3 和 i4 指向的是不一樣的對象。指針

 

http://alexyyek.github.io/2014/12/29/wrapperClass/對象

相關文章
相關標籤/搜索