亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

對Java中傳值調用的理解分析

2019-11-26 15:19:40
字體:
來源:轉載
供稿:網友

本文實例分析了Java中的傳值調用。分享給大家供大家參考。具體分析如下:

Java以引用的方式操作對象實例

可以確認的是Java中操作對象的方式是以引用的方式操作對象。為了更深刻的了解這點我寫了如下代碼:

首先定義一個自定義類型

復制代碼 代碼如下:
public class Person { 
     
    String name; 
     
    Person(String name){ 
        this.name = name; 
    } 
}

這里name默認是public哦(和C++中class的默認屬性不一樣哦)
然后Main函數中的調用如下:

復制代碼 代碼如下:
public class Main { 
 
    /**
     * @param args
     */ 
    public static void main(String[] args) { 
        // TODO Auto-generated method stub 
        Person p1 = new Person("Paul"); 
        Person p2 = new Person("Griefen"); 
         
        System.out.println("p1.name = " + p1.name + "   p2.name = " + p2.name); 
         
        Person tmp; 
        tmp = p1; 
        p1 = p2; 
         
        System.out.println("tmp.name = " + tmp.name + " p1.name = " + p1.name + " p2.name = " + p2.name); 
                 
    } 
 
}

這時候的輸出結果如下:
復制代碼 代碼如下:
p1.name = Paul  p2.name = Griefen 
tmp.name = Paul p1.name = Griefen p2.name = Griefen

咦?為什么是這樣子一個結果呢?作為一個CPPer我感到很困惑!說好的是引用啊,那么執行了如下語句之后

復制代碼 代碼如下:
Person tmp; 
tmp = p1; 
p1 = p2;

因為我按C++中引用的概念去理解這個操作,那么時候tmp p1 p2這時候應該都是同一個對象才對,即都應該指向p2這個對象啊。但是輸出結果顯然證明這樣的理解是不對的!那么Java中的引用既然和C++中的引用不是一回事?!??!難道和C++中的指針是同一回事嗎?

好!我們就按照C++中的指針來理解一下這個操作過程。

首先 Person tmp;是進行了一個指針的聲明剛好和C++中的指針聲明類似。而C++中明確的規定了引用的聲明是不可以這樣單獨寫的,引用聲明的時候就應該指針一個對象,顯然第一步的推理是正確的。這是一個好的開始!然后tmp = p1; p1 = p2; 顯然是tmp指向了p1,p1指向了p2,核對一下輸出結果。發現是吻合的!
那說明Java中的引用如果和C++中的數據操作做比較的話,應該和C++中的指針的概念更相近!

C++中指針實現上述功能

既然說上面的Java操作對象方式和C++中的指針相似,那我們就看一下C++中實現上面的方式是怎么實現的呢

復制代碼 代碼如下:
#include "stdafx.h" 
#include <string> 
#include <iostream> 
 
class Person 

public: 
    std::string name; 
public: 
    Person(std::string name) 
    {  
        this->name = name; 
    }; 
}; 
 
int _tmain(int argc, _TCHAR* argv[]) 

    Person* p1 = new Person("Paul"); 
    Person* p2 = new Person("Griefen"); 
     
    std::cout<< "p1.name " << p1->name << " p2.name = " << p2->name << std::endl; 
 
    Person* tmp; 
    tmp = p1; 
    p1 = p2; 
 
    std::cout<<"tmp.name" << tmp->name << " p1.name " << p1->name << " p2.name = " << p2->name << std::endl; 
 
    delete tmp; 
    delete p1; 
    return 0; 
}

調試之后發現輸出結果和上面Java的運行結果是一樣的

任何語言的底層實現都是相同的

既然Java中的引用效果看起來和C++的指針是一樣的為什么Java中不直接叫指針呢?顯然還是有區別的,比如Java中的引用是不能進行++運算的,而C++的指針就可以而且移動也會很隨意。顯然就這一點來說Java就對它的指針做了大量的工作去限制它,讓它運行起來更安全。但是不管上層看起來有多么大的卻別,到了底層都需要去申請內存,內存用完了之后要釋放。這是在任何一種語言中都要做的工作!

希望本文所述對大家的Java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕久热精品视频在线| 日韩av有码在线| 91视频免费网站| 欧美中文字幕在线观看| 欧美日韩一区二区在线| 日韩精品视频免费在线观看| 亚洲第一区在线| 亚洲视频综合网| 91在线观看免费高清| 欧美国产乱视频| 在线日韩精品视频| 69久久夜色精品国产69乱青草| 久久香蕉国产线看观看网| 午夜精品在线观看| 日韩欧美中文字幕在线观看| 欧美成人午夜影院| 亚洲欧美日韩在线高清直播| 国产视频自拍一区| 亚洲女性裸体视频| 欧美激情一级精品国产| 亚洲品质视频自拍网| 色噜噜国产精品视频一区二区| 91久久嫩草影院一区二区| 国产在线观看精品一区二区三区| 91精品国产777在线观看| 国产成人av在线| 日韩在线观看网址| 亚洲va欧美va在线观看| 在线视频欧美日韩精品| 久久影视三级福利片| 国产日产欧美a一级在线| 精品在线欧美视频| 国产精品日韩在线播放| 日韩中文在线中文网三级| 亚洲护士老师的毛茸茸最新章节| 岛国精品视频在线播放| 欧美午夜视频在线观看| 91网站在线免费观看| 91国内精品久久| 亚洲91精品在线观看| 国产欧美精品一区二区| 国产精品极品美女在线观看免费| 欧美国产日韩中文字幕在线| 国产三级精品网站| 色爱av美腿丝袜综合粉嫩av| 韩国美女主播一区| 亚洲第一精品久久忘忧草社区| 亚洲春色另类小说| 国产999精品久久久影片官网| 欧美午夜视频在线观看| 欧美亚洲另类制服自拍| 欧美精品久久久久久久| 日韩美女主播视频| 中文字幕久久久av一区| 国产精品成人av在线| 欧美成人国产va精品日本一级| 国产精品嫩草视频| 久久久精品电影| 亚洲国语精品自产拍在线观看| 久久精品免费电影| 日韩乱码在线视频| 成人激情在线播放| 亚洲香蕉av在线一区二区三区| 午夜精品一区二区三区在线播放| 欧美日韩高清区| 欧美性生交大片免网| 欧美黑人视频一区| 亚洲国产日韩欧美在线动漫| 欧美精品在线免费| 久久久久久久久久久网站| 亚洲精品白浆高清久久久久久| 中文字幕亚洲欧美一区二区三区| 国产日韩精品综合网站| 精品久久在线播放| 国产精品久久久久免费a∨| 亚洲男人天堂久| 欧美黄色www| 精品av在线播放| 日韩欧美成人免费视频| 欧美最猛性xxxxx免费| 日韩视频在线观看免费| 亚洲日韩欧美视频一区| 成人黄色片网站| 亚洲第一页自拍| 人人澡人人澡人人看欧美| 91超碰中文字幕久久精品| 国产一区二区香蕉| 亚洲精品国产精品国自产观看浪潮| 亚洲性猛交xxxxwww| 亚洲国产欧美精品| 久久久女人电视剧免费播放下载| 欧美性受xxxx黑人猛交| 中文字幕亚洲欧美日韩在线不卡| 国产精品久久久一区| 国产精品日日摸夜夜添夜夜av| 中文字幕亚洲无线码在线一区| 欧美一区深夜视频| 国模视频一区二区三区| 亚洲va欧美va在线观看| 98午夜经典影视| 国产黑人绿帽在线第一区| 精品久久久久久久久久久久久| 国产精品一区二区三区成人| 国产精品一区二区三区在线播放| 久久久极品av| 国产精品福利观看| 欧美视频精品一区| 欧美一区二区三区……| 中文字幕亚洲欧美一区二区三区| 亚洲欧美第一页| 久久久噜久噜久久综合| 亚洲成人久久网| 91精品中国老女人| 欧美激情aaaa| 亚洲一区二区自拍| 久久精品一本久久99精品| 精品日韩美女的视频高清| 91色中文字幕| 国产精品老女人精品视频| 欧美日韩在线免费观看| 91在线免费视频| 97久久精品人人澡人人爽缅北| 亚洲色图偷窥自拍| 久久精品国产69国产精品亚洲| 中国人与牲禽动交精品| 亚洲天堂免费观看| 92国产精品久久久久首页| 久久精品国产久精国产思思| 精品久久久久久久久久久久久| 欧洲亚洲妇女av| 国产一区深夜福利| 国产精品久久久久高潮| 欧美一乱一性一交一视频| 欧美另类极品videosbestfree| 欧美精品videossex性护士| 国产亚洲欧洲高清| 欧美精品成人在线| 这里只有精品视频| 久久99精品视频一区97| 亚洲美女又黄又爽在线观看| 亚洲精品综合精品自拍| 色妞欧美日韩在线| 久久久亚洲影院你懂的| 亚洲影院色在线观看免费| 国产福利成人在线| 欧美尺度大的性做爰视频| 日韩精品免费电影| 亚洲一品av免费观看| 亚洲午夜久久久影院| 欧美午夜片欧美片在线观看| 欧美剧在线观看| 亚洲网站在线观看| 成人精品福利视频| 日韩免费看的电影电视剧大全| 日韩精品高清在线观看| 91九色综合久久| 久久久成人精品视频| 精品国产依人香蕉在线精品| 亚洲国内精品视频| 国产亚洲在线播放| 国产不卡av在线| 亚洲人a成www在线影院| 这里只有精品视频| 91精品国产亚洲|