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高頻面試題---RabbitMQJava面試題MQ
- Java高頻面試題---MySQLJava面試題MySql
- Java集合高頻面試題Java面試題
- 方法的過載、可變形參的方法、方法的引數值傳遞機制、遞迴方法遞迴
- Java方法04:命令列傳遞引數、可變引數Java命令列
- JS的方法引數傳遞(按值傳遞)JS
- (四) BAT面試的20道高頻資料庫面試題BAT資料庫面試題
- 面試官問:Go 中的引數傳遞是值傳遞還是引用傳遞?面試Go
- java框架面試高頻問題(SpringMVC)Java框架面試SpringMVC
- Java高頻面試題(2023最新整理)Java面試題
- 高頻面試題面試題
- MySQL高頻面試題MySql面試題
- Java入門第12天 (方法過載 ,方法的引數傳遞)Java
- GridView傳遞兩個引數的方法View
- java 傳遞引數的兩種方式Java
- 引數傳值機制
- 100道Java高頻面試題(阿里面試官整理)Java面試題阿里
- JAVA基礎之-引數傳遞Java
- php函式引用傳遞引數的方法PHP函式
- Java中將方法作為引數傳遞5種方式Java
- 引數傳遞
- JavaScript高頻面試試題2——2020.12.04JavaScript面試
- 獲取url中?後面傳遞的引數
- ABAP 方法呼叫的引數傳遞裡,透過引用傳遞的方式,能修改原始引數值嗎?
- 前端高頻面試題JavaScript篇前端面試題JavaScript
- Selenium 高頻面試題及答案面試題
- Javascript 定時器呼叫傳遞引數的方法JavaScript定時器
- [高頻面試]解釋執行緒池的各個引數含義面試執行緒
- LeetCode高頻演算法面試題 - 002 - 兩數相加LeetCode演算法面試題
- Java高頻面試題:談談你對MySQL索引的瞭解Java面試題MySql索引
- 引數的定義和引數的傳遞
- Mybatis引數傳遞MyBatis
- Java類載入機制詳解【java面試題】Java面試題
- 向路由元件傳遞引數2種方法路由元件
- 請求引數的傳遞
- 函式的引數傳遞函式
- MySQL 高頻面試題,都在這了MySql面試題