第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

基礎(chǔ)類型是值傳遞,變量data為什么值被改變了?

  1. byte[] data = new byte[1024];//創(chuàng)建字節(jié)數(shù)組,指定接受的數(shù)據(jù)包的大小

  2. System.out.println(data);

  3. DatagramPacket datagramPacket = new DatagramPacket(data, data.length);

  4. //3.接受客戶端發(fā)送的數(shù)據(jù)

  5. System.out.println("服務(wù)器機(jī)即將啟動,等待客戶端的連接");

  6. datagramSocket.receive(datagramPacket);//此方法在接受到數(shù)據(jù)包之前會一直阻塞

  7. System.out.println(data);// ??? data值改變

  8. System.out.println(datagramPacket.getData());

  9. //4.讀取數(shù)據(jù)

  10. String info = new String(data, 0, datagramPacket.getLength());

  11. System.out.println("我是服務(wù)端,客戶端說:" + info);

第7行data值發(fā)生了改變???


正在回答

3 回答

我覺得真正對data數(shù)組動手腳的應(yīng)該是receive方法 會不會是返回一個data數(shù)組覆蓋了前面定義的數(shù)組呢?

0 回復(fù) 有任何疑惑可以回復(fù)我~

datagramSocket.receive(datagramPacket);這里獲取到了數(shù)據(jù)包,data值當(dāng)然會變啊。詳細(xì)代碼說明:https://blog.csdn.net/ljcgit/article/details/81450491

0 回復(fù) 有任何疑惑可以回復(fù)我~

首先第一點(diǎn):在java里,只有值傳遞。

你可能是剛學(xué)完c語言吧。你的面向?qū)ο笏枷脒€需要加強(qiáng)。

data指向的是一個一個字節(jié)數(shù)組,如果在data數(shù)組作為參數(shù)的方法里,改變data數(shù)組的指向(也就是指向另一片內(nèi)存),自然不會改變data數(shù)組的值(不會改變原來內(nèi)存的值)。但是,改變的是data數(shù)組里的元素,這就是直接修改data數(shù)組指向的內(nèi)存的值了。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

基礎(chǔ)類型是值傳遞,變量data為什么值被改變了?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號