JAVA語言中的參數傳遞
導語:在程序設計中,C語言或者C++語言的一些參數傳值或者地址都十分明確,但是在JAVA中還存在着一些爭論,甚至有所謂的結論認為:在JAVA裏參數傳遞是按值傳遞。下面就由小編為大家介紹一下JAVA語言中的參數傳遞,歡迎大家閲讀!
一、按值傳遞
所謂的按值傳遞是指在調用方法時,是根據值的拷貝進行參數傳遞,其最顯著的特點也是其所傳遞的參數是值的拷貝,傳遞後即互不相干,可以通過以下示例説明:
public class TempTest{
private void test1(int a){
a=5;
tln("test1方法中的a==="+a);
}
public static void main(String[]args){
TempTest t=new TempTes(t);
int a=3;
1(a);//
在進行傳遞後,test1方法中所改變的變量值不會對此處的a產生影響。
tln("main方法中的a==="+a);
}
}
運行結果是:
test1方法中的a===5
main方法中的a===3
二、按引用傳遞
所謂的按引用傳遞是指方法調用的過程中,按照引用實現參數的傳遞,其所傳遞的參數內容是引用地址,即變量對的內存空間地址。按引用傳遞也着顯著的特點,它所傳遞的內容是值的引用,無論傳遞前還是傳遞後均指向同個內存空間。可以通過以下示例加以説明:
第1行public class TempTest{
第2行private void test1(A a){
第3行=20;
第4行tln("test1方法中的age="+);
第5行}
第6行public static void main(String[]args){
第7行TempTest t=new TempTes(t);
第8行A a=new A();
第9行=10;
第10行1(a);
第11行tln("main方法中的age="+);
第12行}
第13行}
第14行class A{
第15行public int age=0;
第16行}
運行結果如下:
test1方法中的age=20
main方法中的age=20
三、內存分配示意圖
要準確理解按引用傳遞的過程,就要清楚的知道內存分配的過程,可以通過以下示例進行説明:
(1):運行開始,運行第8行,創建了一個A的實例,內存分配示意如下:
main方法中的變量a
(此處是一個A的實例,age=0)
(2):運行第9行,是修改A實例裏面的age的值,運行後內存分配示意如下:
main方法中的變量a
(此時age=10)
3):運行第10行,是把main方法中的變量a所引用的內存空間地址,按引用傳遞給test1方法中的a變量。請注意:這兩個a變量是完全不同的`,不要被名稱相同所矇蔽。內存分配示意如下:
main方法中的變量a
(此時age=10)
按引用傳遞賦值給test1方法中的變量a,因為是按引用傳遞,即所傳遞的內容是內存空間地址,因此在傳遞結束後,內存示意圖就會形成一個新的形式:
main方法中的變量a
test1方法中的變量a
(此時age=10)
即兩個變量均指向同一空間。
(4):運行第3行,為test1方法中的變量a指向的A實例的age進行賦值,完成後形成的新的內存示意圖如下:
main方法中的變量a
test1方法中的變量a
(此時age=20)
此時A實例的age值的變化是由test1方法引起的
(5):運行第4行,根據此時的內存示意圖,輸出test1方法中的age=20
(6):運行第11行,根據此時的內存示意圖,輸出main方法中的age=20
四、利用ASP實現JAVA在網頁中的參數傳遞
通常JAVA要從其所在的超文本中獲取參數,假如這些參數可預知或者不常改變,那麼只需將對應的參數直接輸出超文本中即可。但是如果這些參數是無法預知或者經常變化的動態參數,那麼就要相應的更改超文本中的這些參數。我們可以利用ASP實現這一功能。我們可以通過以下案例加以説明:
-
2017上半年計算機二級Java練習題及答案
計算機等級證書是我們找工作的敲門磚,現在越來越多人重視計算機等級考試。下面是本站小編為大家帶來的2017上半年計算機二級Java練習題及答案,希望對大家的學習有幫助!一、單選題1、結構化程序設計主要強調的是______。A、程序的規模B、程序的易讀性C、程序的執...
-
java的String=a; a==null和a.equals(null)這兩個判斷有什麼區別
1、String的==與equal()在對字符串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字符值是否相同。大多數時候==跟equal()的結果都是相同的。這是因為String對象是不變模式的,如果你不是明確地new一個String對象,Java對於String對象的保存默認的是會把新生成...
-
Java基本元素詳解
生活呆以是甜的,也可以是苦的,但不能是沒味的。你可以勝利,也可以失敗,但你不能屈服,以下是小編為大家搜索整理了Java基本元素詳解,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!第二章基本元素第一章總結:一平台&JDK&JRE&JVM&A...
-
linux下執行java程序的sh腳本教程
文章主要介紹了linux下執行java程序的sh腳本,僅供參考,但是設置的時候環境變量是最重要的,我就是環境變量一直不對,總是按網上查到的來,不明白怎麼回事,才一直出錯,其實環境變量就是你要執行的java程序所在的位置。接下來是小編為大家收集的linux下執行java程序的sh腳...