文章詳情頁
Java的pass by Value(傳值)
瀏覽:106日期:2024-06-13 17:43:27
內(nèi)容: Java中使用“pass by value'函數(shù)調(diào)用 方式,這常常造成許多人迷惑。在所有地點,Java都使用嚴(yán)格采用pass by value,所以下列程序: class Param { public static void main (String [] args){ int x = 3; triple(x); System.out.println('x after triple : '+ x); } private static void triple (int arg) { arg = arg * 3; System.out.println('arg in triple :'+ arg); }}會產(chǎn)生這樣的輸出:arg in triple : 15x after triple : 5這段代碼不致于讓人糊涂。但如果參數(shù)中傳遞的是對象,可能把人弄迷糊了。如果在程序中以Date對象表示日期,那么下列程序:class Param { public static void main (String [] args){ Date d1 = new Date('1 Apr 98'); nextDateUpdate(d1); System.out.println('d1 after nextDay: ' + d1);Date d2 = new Date('1 Apr 98'); nextDateReplace(d2); System.out.println('d2 after nextDay: ' + d2); } private static void nextDateUpdate (Date arg) { arg.setDate( arg.getDate() + 1); System.out.println('arg in nextDay : ' + arg); } private static void nextDateReplace (Date arg) { arg = new Date(arg.getYear(),arg.getMonth(),arg.getDate()+1); System.out.println('arg in nextDay : ' + arg); }}產(chǎn)生的輸出:arg in nextDay : Thu Apr 02 00:00:00 CST 1998d1 after nextDay: Thu Apr 02 00:00:00 CST 1998arg in nextDay : Thu Apr 02 00:00:00 CST 1998d2 after nextDay: Wed Apr 01 00:00:00 CST 1998從本質(zhì)上說,object reference 是按值傳遞的(pass by value)。因此可以修改參數(shù)對象的內(nèi)部狀態(tài),但參數(shù)對象重新賦值,沒有意義。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd Java中使用“pass by value'函數(shù)調(diào)用 方式,這常常造成許多人迷惑。在所有地點,Java都使用嚴(yán)格采用pass by value,所以下列程序: class Param {public static void main (Strin
標(biāo)簽:
Java
相關(guān)文章:
1. Java GZip 基于內(nèi)存實現(xiàn)壓縮和解壓的方法2. idea配置jdk的操作方法3. SpringBoot+TestNG單元測試的實現(xiàn)4. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法5. python 浮點數(shù)四舍五入需要注意的地方6. Springboot 全局日期格式化處理的實現(xiàn)7. VMware中如何安裝Ubuntu8. Docker容器如何更新打包并上傳到阿里云9. 完美解決vue 中多個echarts圖表自適應(yīng)的問題10. JAMon(Java Application Monitor)備忘記
排行榜
