自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java值傳遞的終極解釋

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

對(duì)于Java的值傳遞, 你真的了解么? Java里面只有值傳遞, 這個(gè)值是什么? 如果是基本數(shù)據(jù)類型。 你也許回答的很干脆。 但如果是Object對(duì)象呢? 你確定清楚不? 先看下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, 輸出的結(jié)果是什么? 你對(duì)了嗎?

輸出的結(jié)果是 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. }    

 

輸出的結(jié)果是 colin huang.

為什么是這樣的結(jié)果呢? 下面詳細(xì)解釋:

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

 

 

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

下圖圖解代碼一

 

 

接著圖解代碼二

 

 

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

代碼二中, copy的那個(gè)引用, 把原對(duì)象改變了。

這就是Java的值傳遞。

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

【編輯推薦】

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

2022-07-29 08:05:31

Java值傳遞

2024-01-31 15:28:38

物聯(lián)網(wǎng)IOT連接技術(shù)

2012-02-21 14:04:15

Java

2015-09-08 10:16:41

Java參數(shù)按值傳遞

2016-09-18 19:07:33

Java值傳遞引用傳遞

2023-11-15 09:14:27

Java值傳遞

2017-12-05 08:53:20

Golang參數(shù)傳遞

2009-08-17 14:48:44

Java參數(shù)傳遞機(jī)制

2020-09-02 08:00:51

Java引用傳遞值傳遞

2024-09-04 01:36:51

Java對(duì)象傳遞

2022-11-02 15:00:03

Java值傳遞引用傳遞

2019-04-17 13:48:19

JavaScript前端傳遞

2012-05-07 13:23:47

ASP.NET

2020-10-24 15:50:54

Java值傳遞代碼

2015-07-20 09:39:41

Java日志終極指南

2010-01-06 13:51:15

Javascript傳

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
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)