程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 制作本地副本

制作本地副本

編輯:關於JAVA

稍微總結一下:Java中的所有自變量或參數傳遞都是通過傳遞句柄進行的。也就是說,當我們傳遞“一個對象”時,實際傳遞的只是指向位於方法外部的那個對象的“一個句柄”。所以一旦要對那個句柄進行任何修改,便相當於修改外部對象。此外:
■參數傳遞過程中會自動產生別名問題
■不存在本地對象,只有本地句柄
■句柄有自己的作用域,而對象沒有
■對象的“存在時間”在Java裡不是個問題
■沒有語言上的支持(如常量)可防止對象被修改(以避免別名的副作用)
若只是從對象中讀取信息,而不修改它,傳遞句柄便是自變量傳遞中最有效的一種形式。這種做非常恰當;默認的方法一般也是最有效的方法。然而,有時仍需將對象當作“本地的”對待,使我們作出的改變只影響一個本地副本,不會對外面的對象造成影響。許多程序設計語言都支持在方法內自動生成外部對象的一個本地副本(注釋①)。盡管Java不具備這種能力,但允許我們達到同樣的效果。

①:在C語言中,通常控制的是少量數據位,默認操作是按值傳遞。C++也必須遵照這一形式,但按值傳遞對象並非肯定是一種有效的方式。此外,在C++中用於支持按值傳遞的代碼也較難編寫,是件讓人頭痛的事情。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved