首页 > 代码库 > 43 Java语言基础思考题Java中的参数传递问题

43 Java语言基础思考题Java中的参数传递问题

 1 /*
 2 
 3 基本数据类型的值传递,不改变原值,因为调用后就会弹栈,局部变量随之消失
 4 引用数据类型的值传递,改变原值,因为即使方法弹栈,但是堆内存数组对象还在,可以通过地址继续访问
 5 
 6 基本数据类型传递给参数的是值
 7 引用数据类型传递给参数的是地址
 8 
 9 但是地址也是值,所以参数的传递,传递都是值.
10 
11 */
12 
13 
14 class Demo5{
15     public static void main(String[] args) {
16             int a  = 10;
17             int b =20;
18 
19             System.out.println("a:"+a+"b:"+b);
20             change(a,b);
21             System.out.println("a:"+a+"b:"+b);
22 
23             int[] arr = {1,2,3,4,5};
24             System.out.println(arr[1]);
25 
26     }
27 
28     public static void change(int a,int b){
29         System.out.println("a:"+a+"b:"+b);
30         a = b;
31         b = a+b;
32         System.out.println("a:"+a+"b:"+b);
33     }
34 
35     public static void change(int[] arr){
36         for(int i=0;i<arr.length;i++){
37             if(arr[x]%2==0){
38                 arr[x]*=2;
39             }
40         }
41     }
42 }

 

43 Java语言基础思考题Java中的参数传递问题