日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java流的传递方式是_java中数据的传递方式到底是怎样的!

發布時間:2024/7/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java流的传递方式是_java中数据的传递方式到底是怎样的! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天早上我了一道有關java的題。主要考點是考java中值得傳遞方式。

之前我在javaoo里總結的是:基本數據類型中保存的是實際的值,引用數據類型保存的是被引用的內存地址,那么基本數據類型就是按值傳遞,引用數據類型就是按地址來傳遞的。(難道我一開始就錯了)

題是真樣的:

1 public classSendValue{2 public String str="6";3 public static voidmain(String[] args) {4 SendValue sv=newSendValue();5 sv.change(sv.str);6 System.out.println(sv.str);7 }8 public voidchange(String str) {9 str="10";10 }11 }

輸出的結果是:?6

有解釋說:change方法里面是將傳入的參數修改成10,但是并沒有對SendValue的屬性str就行修改,要修改必須指明this.str="10",所有答案還是6。

還有一題是這樣的:

1 public classExample{2 String str=new String("hello");3 char[]ch={'a','b'};4 public static voidmain(String args[]){5 Example ex=newExample();6 ex.change(ex.str,ex.ch);7 System.out.print(ex.str+" and ");8 System.out.print(ex.ch);9 }10 public void change(String str,charch[]){11 str="test ok";12 ch[0]='c';13 }14 }

輸出的答案是 : ? ? hello and cb;

有的解釋說:String類是final類型的,不能繼承和修改這個類。str=“tesk ok”,其實是隱含的讓Java生成一個新的String對象,那么就與原來的“Hello”沒有任何關系,當函數結束,str作用結束,所以輸出的還是“Hello”。 char ch[] 是傳遞引用,修改了原內容。

然后我上網查,java是按值傳遞還是引用傳遞,有的說:

按值傳遞:指的是在方法調用時,傳遞的參數是按值的拷貝傳遞。就是說傳遞的是拷貝后的值,與前面那個值無關了。

引用傳遞:指的是在方法調用時,傳遞的參數是按引用進行傳遞,其實傳遞的引用的地址,也就是變量所對應的內存空間的地址。傳遞前后都是同一個引用。

但是又有人說這是不對的,他說Java中只有按值傳遞,沒有按引用傳遞!

各位大神們,給我解釋解釋嘛!

總結

以上是生活随笔為你收集整理的java流的传递方式是_java中数据的传递方式到底是怎样的!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。