A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 意念痴心灬戒贪 中级黑马   /  2015-12-20 00:26  /  922 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class T {

        public static void main(String[] args) {
                  int x = 10;
                method(x);
                System.out.print(x);
                int[] arr[] = {{1,2,3},{1,2,3}};
//                method(arr);
                System.out.print(x+arr[0] [0]);
            }
            public static void method(int y) {
                y=5;
            }
//            public static void method(int[][] arr) {
//                arr[0] = new int[]{5,10,15};
        }

4 个回复

倒序浏览
!!!!!!!!
回复 使用道具 举报
你是不是搞错了,忘了把//去了?因为第一个method参数是基本类型,第二个是引用类型,
回复 使用道具 举报
刚试了试,没去// 结果是10和11
去掉之后结果是10和15
arr 经过method 内部arr[0] 被修改成{5,10,15} 所以 int[] arr[]={{5,10,15},{1,2,3}}
所以arr[0][0]=5,结果为15
回复 使用道具 举报
import java.util.*;//导入工具类包,可以使用Arrays.toString() 方法查看数组内的值。
class Ceshi
{
        public static void main(String[] args)
                {
                        int x = 10;
                        method(x);// 此时调用Method(int Y)方法没有实际意义,该方法没有实际返回值,而x为基本数据类型,只是把x的值赋给其内部的y,而不是把其引用传递给y。
                        System.out.println(x);//该处x值依然是10
                        int[] arr[] = {{1,2,3},{1,2,3}};
                        method(arr);//而由于arr是一个对象类型引用,此时传递的是arr的对象引用,调用该方法赋值时修改的是即该引用指向的arr,其与主函数内的arr为同一个。
                        System.out.println(Arrays.toString(arr[0]));//此时打印结果即为arr[0]=[5,10,15]
                        System.out.println(x+arr[0] [0]);//此时x=10,arr[0][0]=5,结果为15。
                }
    public static void method(int y)
                {
                        System.out.println(y);//主函数调用该方法时实现int y = x;此时y值为10。
            y=5;
                        System.out.println(y);//此时y值为5。但该y值与主函数内x无关。
        }
    public static void method(int[][] arr)
                {
         arr[0] = new int[]{5,10,15};//因为此时arr引用与主函数内的arr引用为同一份,赋值时即把原有arr内的值给改变了。此时arr[][] ={{5,10,15},{1,2,3}};
                }
}

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马