Java高頻面試題分享(四)——方法的引數傳遞機制
面試題:閱讀下面的程式碼,寫出輸出結果。
class MyData {
int a = 10;
}
public class MethodArgumentTest {
public static void main(String[] args) {
int i = 1;
String str = "hello";
Integer num = 200;
int[] arr = {1, 2, 3, 4, 5};
MyData my = new MyData();
change(i, str, num, arr, my);
System.out.println("i = " + i);
System.out.println("str = " + str);
System.out.println("num = " + num);
System.out.println("arr = " + Arrays.toString(arr));
System.out.println("my.a = " + my.a);
}
public static void change(int j, String s, Integer n, int[] a, MyData m) {
j += 1;
s += "world";
n += 1;
a[0] += 1;
m.a += 1;
}
}
答案:
i = 1
str = hello
num = 200
arr = [2, 2, 3, 4, 5]
my.a = 11
考察的知識點:
方法的引數傳遞機制
方法的引數傳遞機制:
(1)形參是基本資料型別
- 傳遞資料值
(2)實參是引用資料型別
- 傳遞地址值
- 特殊的型別:String、包裝型別等物件不可變性
過程分析:
透過畫記憶體圖,來分析方法執行後的結果。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2001/viewspace-2820179/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 引數傳遞機制之JWTJWT
- 方法的過載、可變形參的方法、方法的引數值傳遞機制、遞迴方法遞迴
- Java中方法引數傳遞詳析Java
- JS的方法引數傳遞(按值傳遞)JS
- Java方法04:命令列傳遞引數、可變引數Java命令列
- java 中引數的傳遞Java
- Java集合高頻面試題Java面試題
- Java高頻面試題---RabbitMQJava面試題MQ
- Java高頻面試題---MySQLJava面試題MySql
- 分頁及查詢引數傳遞問題分享
- 引數傳值機制
- 面試官問:Go 中的引數傳遞是值傳遞還是引用傳遞?面試Go
- java 傳遞引數的兩種方式Java
- Java入門第12天 (方法過載 ,方法的引數傳遞)Java
- (四) BAT面試的20道高頻資料庫面試題BAT資料庫面試題
- golang 方法作為引數傳遞Golang
- JSP中四種傳遞引數中文亂碼問題JS
- php函式引用傳遞引數的方法PHP函式
- GridView傳遞兩個引數的方法View
- Java引數傳遞是傳值還是傳引用?Java
- java框架面試高頻問題(SpringMVC)Java框架面試SpringMVC
- ABAP 方法呼叫的引數傳遞裡,透過引用傳遞的方式,能修改原始引數值嗎?
- Javascript 定時器呼叫傳遞引數的方法JavaScript定時器
- require方法接受以下幾種引數的傳遞:UI
- MySQL高頻面試題MySql面試題
- Mybatis引數傳遞MyBatis
- JNI傳遞引數
- JSP向後臺傳遞引數的四種方式JS
- 向路由元件傳遞引數2種方法路由元件
- 請求引數的傳遞
- 函式的引數傳遞函式
- 《Java從入門到失業》第四章:類和物件(4.4):方法引數及傳遞Java物件
- SSM框架中Mybatis傳遞引數的幾種方法SSM框架MyBatis
- Java中的引數傳遞有哪些?通俗易懂Java
- 100道Java高頻面試題(阿里面試官整理)Java面試題阿里
- React事件傳遞引數React事件
- 路由元件傳遞引數路由元件
- Rails--方法間透過session傳遞引數AISession