版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
RMI參數(shù)傳遞試驗(yàn)1.概述Java在調(diào)用本地函數(shù)時(shí),簡(jiǎn)單類型是按值傳遞,同時(shí)對(duì)象是按引用傳遞的,即類似于C中的指針傳遞;而在RMI程序中調(diào)用一個(gè)遠(yuǎn)程方法時(shí),由于客戶機(jī)于服務(wù)器各自擁有不同的內(nèi)存空間,所以傳遞類引用時(shí)必須將類成員的信息發(fā)送到遠(yuǎn)程機(jī)器,即對(duì)象必須先被序列化,之后再送到遠(yuǎn)程機(jī)器。下面用兩種方法,通過程序驗(yàn)證RMI對(duì)象是按序列化值傳遞的。2.通過外層類方法修改類成員變量驗(yàn)證根據(jù)Java參數(shù)傳遞的特點(diǎn),可通過對(duì)比類成員變量是否被外層類方法修改成功驗(yàn)證。所以設(shè)計(jì)以下方法驗(yàn)證,首先將A對(duì)象賦值到類B的成員變量中,然后通過類B的方法修改A對(duì)象的引用,并打印顯示修改是否成功,以驗(yàn)證是否傳遞引用。此處通過設(shè)計(jì)以下程序?qū)崿F(xiàn)驗(yàn)證:分別在本地與服務(wù)器建立LocalAuthority、AuthorityImpl兩個(gè)外層類,把Account對(duì)象賦值到外層類的account域中,并調(diào)用changePassword修改Account對(duì)象的password域,最后打印Account的password查看是否修改成功。
2.1.實(shí)驗(yàn)過程啟動(dòng)RMIRegistry啟動(dòng)RMI服務(wù)端口c=c口c=cC:\WINDOWS\system32\cmd.exe-F:\java\jdkl4\bin\javaLexeAuthorit^erverK:\Ppoject\Jaua\FtmiRef>F:\jaua\jdkl4\bin\jaua.exeAathopitySeruerAathoritySeruer::main<>AuthorityImp1::construetor<>啟動(dòng)客戶端(本地模式)運(yùn)行程序,根據(jù)輸出結(jié)果可以看到,該程序首先模擬登陸帳戶Account(admin,123456),然后調(diào)用LocalAuthority.changePassword將帳戶密碼修改為newpassword,最后輸出密碼,可以看到密碼修改成功,證實(shí)本地對(duì)象傳遞是按照引用傳遞的。
啟動(dòng)客戶端(遠(yuǎn)程模式)客戶端輸出服務(wù)器端輸出運(yùn)行程序,根據(jù)輸出結(jié)果可以看到,程序首先模擬登陸帳戶Account(admin,123456),然后調(diào)用Authoritylmpl.changePassword將帳戶密碼修改為newpassword,最后輸出密碼,可以看到密碼修改失敗,依然是原密碼123456,證實(shí)RMI對(duì)象傳遞是按Copy傳遞的。2.2.試驗(yàn)結(jié)果本地對(duì)象傳遞是按照引用傳遞的而RMI對(duì)象傳遞是按Copy傳遞的。3.通過靜態(tài)變量不參與序列化驗(yàn)證首先根據(jù)Java序列化的特性可知,類靜態(tài)成員不會(huì)被序列化,而對(duì)象成員會(huì)被序列化,所以可以通過設(shè)計(jì)以下程序?qū)崿F(xiàn)驗(yàn)證:Client程序向Server請(qǐng)求一個(gè)Account對(duì)象,Server為Account對(duì)象預(yù)先設(shè)定好相應(yīng)的初值,主要包括一個(gè)靜態(tài)變量和一個(gè)普通成員變量:auto_id_static、autold;Client程序每次請(qǐng)求時(shí)Server為這兩個(gè)變量自增值,Client獲取對(duì)象之后打印對(duì)比變量的值。3.1.實(shí)驗(yàn)過程啟動(dòng)RMIRegistry啟動(dòng)RMI服務(wù)端啟動(dòng)客戶端
服務(wù)器端輸出客戶端輸出根據(jù)程序輸出結(jié)果可以看到,account對(duì)象的autoId和userid域更新,而靜態(tài)變量auto_id_static始終為0
3.2.試驗(yàn)結(jié)果RMI是通過序列化傳遞對(duì)象的4.總結(jié)Java在調(diào)用本地函數(shù)時(shí),簡(jiǎn)單類型是按值傳遞,同時(shí)對(duì)象是按引用傳遞的;而在RMI程序中調(diào)用遠(yuǎn)程方法時(shí),由于客戶機(jī)于服務(wù)器各自擁有不同的內(nèi)存空間,所以傳遞對(duì)象時(shí)必須將對(duì)象序列化之后再送到遠(yuǎn)程機(jī)器。5.附件5.1.程序一5.2.程序二Account.javaAuthorityImpl.javaAccount.javaAuthorityImpl.javaAuthorityServer.javaClientC.javaIAuthority.javaLocalAuthority.javaAuthorityImpl.javaAuthorityProxyImpl.javaAuthorityServer.jav
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴陽職業(yè)技術(shù)學(xué)院《區(qū)域分析與區(qū)域規(guī)劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年云南建筑安全員B證(項(xiàng)目經(jīng)理)考試題庫
- 貴陽人文科技學(xué)院《測(cè)量平差》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州中醫(yī)藥大學(xué)《通信經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025云南省安全員C證考試(專職安全員)題庫附答案
- 2025年海南省安全員知識(shí)題庫及答案
- 廣州應(yīng)用科技學(xué)院《大數(shù)據(jù)案例分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025安徽省安全員-B證考試題庫附答案
- 2025上海市安全員《C證》考試題庫
- 《組合圖形面積》課件
- 2025年沈陽水務(wù)集團(tuán)招聘筆試參考題庫含答案解析
- 2025年高三語文八省聯(lián)考作文題目詳解:7個(gè)立意、15個(gè)標(biāo)題、5個(gè)素材
- 《科學(xué)與工程倫理》課件-1港珠澳大橋工程建設(shè)中的白海豚保護(hù)相關(guān)案例分析
- 肘關(guān)節(jié)鏡手術(shù)
- 浙江省杭州市錢塘區(qū)2023-2024學(xué)年四年級(jí)上學(xué)期數(shù)學(xué)期末試卷
- 2024年北師大版四年級(jí)數(shù)學(xué)上學(xué)期學(xué)業(yè)水平測(cè)試期末測(cè)試卷(含答案)
- 天車租賃合同范例
- 多任務(wù)并行處理中的計(jì)算資源分配
- 第二單元《第8課循環(huán)結(jié)構(gòu)-for循環(huán)》教學(xué)實(shí)錄 -2023-2024學(xué)年浙教版(2020)初中信息技術(shù)八年級(jí)上冊(cè)
- 心肺復(fù)蘇術(shù)課件2024新版
- 2023-2024公需科目(數(shù)字經(jīng)濟(jì)與驅(qū)動(dòng)發(fā)展)考試題庫及答案
評(píng)論
0/150
提交評(píng)論