今天是周六,没有老师讲课,需要自己自习,回顾了老师上课时的一些PPT,发现有好几个疑惑的地方,分享一下
1.当定义方法时,传递的参数为数组时,传递过来的数组的使用?
我的理解:因为定义的数组在不同的方法里,所以只有当数组作为参数传递进去,才能使用该数组的数据
例题为:C:\Program Files\feiq\Recv Files\day05\JavaSEDemo05\src\homework StudentScore.java
2.对二维数组的定义
例:int[][] arr=new int[10][];//这里是对二维数组的外层数组进行定义
for(int i=0;i<arr.length;i++){
arr[i]=new int[i+1];//在这里,将二维数组得内层数组进行定义,大小可不一样
}
例题:C:\Program Files\feiq\Recv Files\day05\JavaSEDemo05\src\homework YangHui.java
3.javeSE_面向对象01PPT 第28页:参数传递??输出结果不同的原因。
如果参数时引用数据类型,对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数
public class TestParamValue2 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("Hello ");
System.out.println("before change sb="+sb);
change(sb);
System.out.println("after change sb = "+sb);
}
public static void change(StringBuffer s){
s.append("world");
}
}
输出结果1:before change sb=Hello
after change sb=Helloworld
public class TestParamValue3{
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("Hello ");
System.out.println("before change sb="+sb);
change(sb);
System.out.println("after change sb = "+sb); }
public static void change(StringBuffer s){
s = new StringBuffer("hi ");//这里重新分配了内存空间 s.append("world");
}
}
输出结果2:before change sb=Hello
after change sb=Hello
ps:如果输出:System.out.println("s = "+s); 那么结果为:s=hiworld