傳參問題
- 函式的形式引數,是 傳入引數的拷貝(把棧裡面的值複製一份傳給引數)
- 引用變數之間拷貝的是 【地址】
- 基本變數之間拷貝的是 【記憶體中的值】(被稱為直接量)
實參
用來接收呼叫方法時傳遞的引數,只有在被呼叫時才分配記憶體,一旦呼叫結束,就釋放記憶體空間,因此僅在方法內有效
public void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
// 這裡a,b就是形參,方法結束時,在棧空間就會被銷燬。
實參
呼叫上面方法swap(6, 8); 其中6 8就是實參
形參
值傳遞
- 方法呼叫時,實際引數把它的值傳遞給對應的形式引數,函式就收到的是原始值的副本
- 方法執行中形式引數值的 改變 不影響實際引數的值
資料型別
- 八種基本資料型別,包裝類(類似於基本資料型別)
- String
- 事實上 String 也是傳遞的地址,只是 String 物件和其他物件是不同的
- String物件是不能被改變的,內容改變就會產生新物件
- 那麼StringBuffer就可以了,但只是改變其內容。不能改變外部變數所指向的記憶體地址)
引用傳遞
-
也稱為傳地址
-
方法呼叫時,實際引數的引用(地址,而不是引數的值)被傳遞給方法中相對應的形式引數
-
在方法執行中,對形式引數的操作實際上就是對實際引數的操作,方法執行中形式引數值的改變將 會影響 實際引數的值
-
資料型別
- 除 String 以外的所有複合資料型別,包括陣列、類和介面
public class People { private String name; private String age; public People(String name, String age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } } public class Base1 { public static void main(String[] args) { int a = 10; // 按值傳遞 test1(a); System.out.println("main a==" + a); People p = new People("rose", "18"); // 按引用傳遞 test2(p); System.out.println("main name==" + p.getName() +", age==" + p.getAge()); } public static void test1(int a) { a = 20; System.out.println("test1 a==" + a); } public static void test2(People p) { p.setName("jack"); p.setAge("19"); System.out.println("test2 name==" + p.getName() +", age==" + p.getAge()); } }
test1 a==20 main a==10 test2 name==jack, age==19 main name==jack, age==19
相關文章
- 傳參base64時的+號變空格問題
- Postman 使用 Get 請求 URL 傳參中文亂碼的問題Postman
- [Vue] 使用dllPlugin編譯最佳化後路由傳參問題VuePlugin編譯路由
- vue傳參頁面重新整理資料丟失問題Vue
- vue2.0 axios post請求傳參問題(ajax請求)VueiOS
- 記錄一個laravel8中blade模板元件傳參問題Laravel元件
- query傳參 和 params傳參方式
- sql多參問題解決SQL
- react中路由傳參和url傳參React路由
- Java傳參傳值Java
- 使用magicAPI對接python 檔案,上傳引數獲取不到回參問題APIPython
- 【SpringMVC】傳參SpringMVC
- [SpringMVC] 傳參SpringMVC
- python中傳值和傳地址問題Python
- 一道題帶你搞定Python函式中形參和實參問題Python函式
- Vue路由傳參Vue路由
- angular路由傳參Angular路由
- SCSS @mixin傳參CSS
- gitlab上傳問題記錄Gitlab
- wangEditor上傳圖片問題
- vue元件(component)傳值問題Vue元件
- 阿里雲OOS上傳問題阿里
- httprunner3x 疑問 data 傳參和正則定位HTTP
- Spring Cloud Gateway 動態修改請求引數解決 # URL 編碼錯誤傳參問題SpringCloudGateway
- vue傳參之通過Vue屬性$route的params傳參Vue
- python函式的入參和傳參Python函式
- Vue 路由傳值(傳參)詳解Vue路由
- Vue查詢傳參Vue
- react router路由傳參React路由
- 網頁地址傳參網頁
- [文件教程]解決sae下文件縮圖上傳問題及外掛上傳問題
- 檔案上傳常見問題
- go os.FileMode()傳值問題Go
- 上傳下載相關問題
- 傳教士與食人者問題pythonPython
- MaxComputeTunnel上傳典型問題場景
- C語言中變參函式傳參探究C語言函式
- 分析結果,方法傳參