Java工作笔记-Java函数参传值传引用问题
生活随笔
收集整理的這篇文章主要介紹了
Java工作笔记-Java函数参传值传引用问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
?
?
基本概念
代碼與實例
源碼打包下載
?
基本概念
最近的系統中,Java程序和C++程序混著,很多程序都是用Java搞的,不得不稍微研究下Java的細節,其中很關鍵的一點,就是如何在Java中傳引用,因為要接收一些值,在代碼中試了,用&這個玩意是沒有效果的。
下面給出Java程序中函數傳參數,哪個是傳值,
這里發現,如果是基本數據類型:int這種,都是傳值。
而自己寫的Class為傳地址過去,
Integer和String在封裝后,里面有個final,這樣實際是傳地址,但賦值的時候,卻創建了個新的。
?
?
代碼與實例
程序運行截圖如下:
源碼如下:
public class Main {public static void main(String args[]) {int intFunctionValue = 100;intFunction(100);System.out.println("Main functionValue : " + intFunctionValue);System.out.println("---------- 華麗的分割線 ----------");Integer IntegerFunctionValue = new Integer(100);IntegerFunction(IntegerFunctionValue);System.out.println("Main IntegerFunction : " + IntegerFunctionValue);System.out.println("---------- 華麗的分割線 ----------");Struct struct = new Struct();struct.setAge(17);struct.setName("heheda");ClassFunction(struct);System.out.println("Main ClassFunction : " + struct);System.out.println("---------- 華麗的分割線 ----------");}static void intFunction(int value){value = 200;System.out.println("intFunction value : " + value);}static void IntegerFunction(Integer value){value = 200;System.out.println("IntegerFunction value : " + value);}static void ClassFunction(Struct value){value.setAge(18);value.setName("Hello World");System.out.println("ClassFunction value : " + value);}static class Struct{private Integer age;private String name;public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Struct{" +"age=" + age +", name='" + name + '\'' +'}';}} }?
?
源碼打包下載
地址如下:https://github.com/fengfanchen/Java/tree/master/FunctionParament
總結
以上是生活随笔為你收集整理的Java工作笔记-Java函数参传值传引用问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Arduino笔记-流水点灯
- 下一篇: Java工作笔记-使用Maven创建多模