成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java值傳遞的終極解釋

開發 后端
對于Java的值傳遞,你真的了解么?Java里面只有值傳遞,這個值是什么?如果是基本數據類型.你也許回答的很干脆.但如果是Object對象呢?你確定清楚不?先看下code。

對于Java的值傳遞, 你真的了解么? Java里面只有值傳遞, 這個值是什么? 如果是基本數據類型。 你也許回答的很干脆。 但如果是Object對象呢? 你確定清楚不? 先看下code。

Java代碼

  1. package com.basic;     
  2.     
  3. public class Test {     
  4.     
  5.     /**    
  6.      * @param args    
  7.      */    
  8.     public static void main(String[] args) {         
  9.         StringBuffer buffer= new StringBuffer("colin");     
  10.         SChange(buffer);     
  11.         System.out.println( buffer);     
  12.     }     
  13.          
  14.     public static void SChange (StringBuffer str) {     
  15.         str= new StringBuffer("huang");     
  16.     }     
  17.     
  18. }   

 

上面code, 輸出的結果是什么? 你對了嗎?

輸出的結果是 colin.

我們修改下code

Java代碼

  1. package com.basic;     
  2.     
  3. public class Test {     
  4.     
  5.     /**    
  6.      * @param args    
  7.      */    
  8.     public static void main(String[] args) {         
  9.         StringBuffer buffer= new StringBuffer("colin");     
  10.         SChange(buffer);     
  11.         System.out.println( buffer);     
  12.     }     
  13.          
  14.     public static void SChange (StringBuffer str) {     
  15.         //str= new StringBuffer("huang");     
  16.         str.append(" huang");     
  17.     }     
  18.     
  19. }    

 

輸出的結果是 colin huang.

為什么是這樣的結果呢? 下面詳細解釋:

Java確實通過引用來維護Object, 所有的Object變量, 都是一個引用。但Java在方法傳遞中, 確實是值傳遞。 那這個值是什么呢。 對于Object, 這個值就是傳人的Object的引用。既把這個引用copy了一份。 那么, 就至少有兩個引用指向了這同一個傳入的Object。 參考下圖:

 

 

那么, 我們就來圖解下上面的那兩個代碼。

下圖圖解代碼一

 

 

接著圖解代碼二

 

 

代碼一中, copy的那個引用, 指向了一個新的對象。 但原對象還是沒有變化的。

代碼二中, copy的那個引用, 把原對象改變了。

這就是Java的值傳遞。

原文地址:http://qqdwll.javaeye.com/blog/970001

【編輯推薦】

  1. 探秘JDK 7之四:下一代I/O(NIO.2)
  2. 性能優化總結:CPU和Load、NIO以及多線程
  3. Java 7 NIO2高性能Web服務器并發連接的處理
  4. 初試Java 7 NIO2:實現高性能的HTTP Server
  5. Google技術演講介紹Java 7 NIO.2概覽
責任編輯:金賀 來源: JavaEye博客
相關推薦

2022-07-29 08:05:31

Java值傳遞

2015-09-08 10:16:41

Java參數按值傳遞

2012-02-21 14:04:15

Java

2024-01-31 15:28:38

物聯網IOT連接技術

2016-09-18 19:07:33

Java值傳遞引用傳遞

2023-11-15 09:14:27

Java值傳遞

2017-12-05 08:53:20

Golang參數傳遞

2020-09-02 08:00:51

Java引用傳遞值傳遞

2009-08-17 14:48:44

Java參數傳遞機制

2019-04-17 13:48:19

JavaScript前端傳遞

2022-11-02 15:00:03

Java值傳遞引用傳遞

2024-09-04 01:36:51

Java對象傳遞

2012-05-07 13:23:47

ASP.NET

2010-01-06 13:51:15

Javascript傳

2020-10-24 15:50:54

Java值傳遞代碼

2015-07-20 09:39:41

Java日志終極指南

2014-10-12 10:40:28

Java 9

2024-08-05 09:30:00

2010-09-26 17:13:31

2014-12-24 10:24:55

Java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠干狠狠操 | 精品视频一区二区三区四区 | 免费看国产片在线观看 | 成人精品鲁一区一区二区 | 毛片一级片| 国产精品a级 | 91高清视频在线观看 | 一区二区三区四区不卡 | 国产精品一区一区三区 | 日本免费网| 欧美日批| 精品视频在线播放 | 一级黄色毛片a | 亚洲免费在线观看av | 蜜桃视频在线观看免费视频网站www | 一本大道久久a久久精二百 国产成人免费在线 | 国产精品18久久久久久白浆动漫 | 国内精品久久久久久久影视简单 | 成年人在线视频 | 久久久影院| 久久精品中文 | 天天操天天射综合 | 欧美日韩看片 | 欧美精品在欧美一区二区少妇 | h在线播放| 欧美在线 | 一区二区三区四区在线视频 | 久久久精品一区二区三区 | 久久精品亚洲精品国产欧美 | 久久激情视频 | a级毛片免费高清视频 | 久久久久久久久久久久一区二区 | 亚洲成人一区二区 | 亚洲一区二区三区在线视频 | 九九久视频 | 中文字幕在线一区 | 手机看片在线播放 | 人人99| 2018天天干天天操 | 美女张开腿露出尿口 | 在线观看中文字幕 |