false,true
成都網(wǎng)站建設、成都做網(wǎng)站服務團隊是一支充滿著熱情的團隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標準與要求,同時竭誠為客戶提供服務是我們的理念。創(chuàng)新互聯(lián)公司把每個網(wǎng)站當做一個產(chǎn)品來開發(fā),精雕細琢,追求一名工匠心中的細致,我們更用心!
第一個為false是因為”==“比較的是兩個應用,他們在內(nèi)存中的地址不一樣,所以為false
第二個為true 是因為String類里重寫了equals方法,只要兩個對象的內(nèi)容一樣,就返回true
/*
*一般情況不建議這么使用類對象
*要這么做可以,場景只有一種內(nèi)部類
*這樣的做法違反數(shù)據(jù)封裝設計原則,極少情況會這么用。
*如果非得這么用,設計成私有內(nèi)部類,這么用少get、set方法,效率會稍有提高
*因為類權限聲明符為缺省,因此此類的訪問權限為同包內(nèi)的其它類可使用
*/
class?ValHold{
//實例成員變量i初始化為10
public?int?i?=?10;
}
public?class?Obparm?{
public?static?void?main(String[]?args)?{
/*
*申明int類型變量z,0開頭代表8進制表示方法
*換算成10進制整數(shù)是:13
*此變量你的整個程序中都未使用到
*/
int?z?=?015;
/*
*實例化對象本省,因為main方法是程序入口點,靜態(tài)方法,
*此方法中能直接訪問的成員變量必須申明為靜態(tài)的
*能訪問的成員方法,也必須申明為靜態(tài)的
*此處是為了調(diào)用實例方法amethod,所以必須先實例化對象
*/
Obparm?o?=?new?Obparm();
/*
*調(diào)用Obparm類實例O的amethod方法
*/
o.amethod();
}
public?void?amethod(){
//申明變量i,棧級別變量,只在當前運行的方法塊內(nèi)生效
int?i?=?99;
//申明并初始化類ValHold實例變量v,棧級別變量,只在當前運行的方法塊內(nèi)生效
ValHold?v?=?new?ValHold();
//修改實例v的成員變量i為30
v.i=30;
//調(diào)用Obparm?實例方法,隱含實例指針this,代表實例自身
//此處完整的寫法是,this.another(v,i);但this關鍵字可省略
another(v,i);
System.out.print(v.i);
}
public?void?another(ValHold?v,int?i){
//修改實參i
i?=?0;
//修改v實例變量i的值為20,實參引用的對象變量i也會被修改
v.i?=?20;
//重新實例化一個ValHold對象
ValHold?vh?=?new?ValHold();
//修改實參v引用vh,或者讓v的指針指向vh
v?=?vh;
//輸出vh實例變量i
System.out.print(v.i);
//輸出i
System.out.print(i);
}
}
/*
*********************************************************************************
從以上我做的注釋,最終輸出結果為:
10020
如果調(diào)用
System.out.println
輸出結果是:
10
20
我不知道那個老師教你們這個的,如果對初學者,很難理解這么多內(nèi)容。
他想考你們的是,代碼的作用域,類方法的實參參數(shù)的傳遞是引用傳遞,實參可以當方法中的變量,修改了實參的引用,知會在方法塊內(nèi)生效(或者當前運行棧上生效)。
不知道你能看明白不?
*********************************************************************************
*/
第一行輸出結果是abc:
原因是:
s.substring(1);
s.replace("bc", "xyz");
這兩句話沒有任何作用 ~因為String是屬于值傳遞~
第二行 輸出結果是false:
原因是:
用==比較字符串,是比較兩個變量本身的值,即兩個對象在內(nèi)存中的首地址。用equals比較就會為true,equals比較的是內(nèi)容是否相同。
附:
1、值傳遞、引用傳遞的區(qū)別:
值傳遞:(形式參數(shù)類型是基本數(shù)據(jù)類型):方法調(diào)用時,實際參數(shù)把它的值傳遞給對應的形式參數(shù),形式參數(shù)只是用實際參數(shù)的值初始化自己的存儲單元內(nèi)容,是兩個不同的存儲單元,所以方法執(zhí)行中形式參數(shù)值的改變不影響實際參數(shù)的值。
引用傳遞:(形式參數(shù)類型是引用數(shù)據(jù)類型參數(shù)):也稱為傳地址。方法調(diào)用時,實際參數(shù)是對象(或數(shù)組),這時實際參數(shù)與形式參數(shù)指向同一個地址,在方法執(zhí)行中,對形式參數(shù)的操作實際上就是對實際參數(shù)的操作,這個結果在方法結束后被保留了下來,所以方法執(zhí)行中形式參數(shù)的改變將會影響實際參數(shù)
2、用==比較和用equals比較的區(qū)別:
對于字符串變量來說,使用“==”和“equals()”方法比較字符串時,其比較方法不同.
“==”比較兩個變量本身的值,即兩個對象在內(nèi)存中的首地址.
“equals()”比較字符串中所包含的內(nèi)容是否相同.
您好,非常榮幸能在此回答您的問題。以下是我對此問題的部分見解,若有錯誤,歡迎指出。輸出:5
public void add(int pInt){ //定義一個方法,參數(shù)是一個int型
pInt ++; //pInt = pInt + 1;
}
這題主要是考你參數(shù)傳遞的問題,int型傳的是值,所以雖然pInt++后pInt=6
但沒有帶回去,所以i還是5非常感謝您的耐心觀看,如有幫助請采納,祝生活愉快!謝謝!
分享標題:java運行代碼結果 java程序代碼運行結果
瀏覽路徑:http://m.kartarina.com/article20/hjihjo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供、用戶體驗、網(wǎng)站制作、營銷型網(wǎng)站建設、網(wǎng)站內(nèi)鏈、外貿(mào)網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)