天天看點

基本資料類型傳參機制前言一、基本資料類型二、基本資料類型的傳參機制(簡單)總結

文章目錄

  • 前言
  • 一、基本資料類型
  • 二、基本資料類型的傳參機制(簡單)
    • 1.代碼示範
    • 2.基本資料類型傳參機制
  • 總結

前言

有時間了就是好,可以有更多時間做自己喜歡的事了,今天代碼是敲爽了,也有點累了,就給大家分享一個原理很簡單的但是在Java中很重要的小東西傳參機制,參數這個東西隻要是開始接觸Java就開始接觸了,但是學習嘛,都會有個過程,一開始都是模仿,這是沒有任何錯的,是正确的學習方法,但是一直都是這樣的話那就是有問題了,是以有時候就得搞懂一些深一點層次的東西,人嘛要向前看,如果這個傳參機制不弄清楚,可以說Java白學了,是以給大家來點有意思的。為了讓大家有直覺的感受,我就不來那些太官方的文字了。

一、基本資料類型

jib

基本資料類型傳參機制前言一、基本資料類型二、基本資料類型的傳參機制(簡單)總結

基本資料類型就如上圖所示,有4大類,8分支,在參數的傳遞中都非常常見,這個東西一定要記住他們的特點,今天我們重點不在這。

二、基本資料類型的傳參機制(簡單)

1.代碼示範

為了友善示範我們用基本資料的int類型

代碼如下(示例):

public class Test01 {

	public static void main(String[] args) {
		// 交換兩個數,其實是直接傳值
		int a = 5;
		int b = 6;
		System.out.println("mian函數沒有運作changge方法的a,b為:"+a+","+b);
		Test01.changge(a,b);
		System.out.println("mian函數運作changge方法的a,b為:"+a+","+b);

	}
	public static void changge(int a,int b) {
		System.out.println("changge沒有開始運作的a,b為:"+a+","+b);
		int temp = 0;
		temp = a;
		a = b;
		b = temp;
		System.out.println("changge運作了的a,b為:"+a+","+b);
	}

}
           

大家可以猜一猜每次輸出的地方都是什麼,其實争議最大的數main函數運作了方法以後的值,這裡就會出現兩個選項,一個是5,6另一個是6,5,那到底是什麼呢,哈哈,我們接着看輸出吧

代碼如下(輸出):

mian函數沒有運作changge方法的a,b為:5,6
changge沒有開始運作的a,b為:5,6
changge運作了的a,b為:6,5
mian函數運作changge方法的a,b為:5,6
           

哈哈,沒想到吧,這個輸出是5,6,咦,是不是有點詫異,這兩個數的交換方法是沒奏效嗎。其實是不然,這個兩個數的交換方法是起了作用的,因為從changge運作了的a,b為:6,5,既可以看出确實是交換過來了的,看程式的運作順序最後的結果為什麼不是6,5呢,這就得和基本資料的傳參機制挂鈎。

2.基本資料類型傳參機制

基本資料類型傳參機制前言一、基本資料類型二、基本資料類型的傳參機制(簡單)總結

在虛拟機的記憶體中有兩個主要的儲存區域一個叫棧一個叫堆,當參數類型為基本資料類型的時候,實際是儲存在棧裡面的,沒有在堆裡面,當實參為基本資料類型的時候它是直接将值複制一份給changge自己去玩,自己的那份還是沒動,它們是各不相幹的,是以就會出現上面那個不合理的狀況,基本資料類型傳參傳的是值。

總結

今天就先分享一下基本資料類型的傳參機制,下次再分享引用資料類型的傳參機制,非常感謝大家的支援!!!!!感謝,感謝,感謝