问题一
1.1
changeStr:尝试将x赋值为“xyz”
changeArr:遍历string数组,把数组的每个元素都接上他们的索引
1.2
main方法里的x没有被改变,因为x的类型是string,非可变对象
1.3
改变了 因为这里对数组进行更改 是可变的 可影响原数组
1.4
来自于命令行参数 如果是命令行就在java test.java后面加参数,如果IDE就按老师上课讲的修改运行配置的方法
问题二
2.1
第一行:2 1 0;第二行:2 1 0
因为数组是引用类型,int[] arrx=arr把arr的引用值给了arrx,指向同一个地址,他们的结果完全一样
2.2
strArr是一个字符串类的引用数组,当strArr[1]="xx"时,不是修改string对象的内容,而是让strArr[1]重新指向了一个新的字符串 xx
问题三
定义了一个二维数组,第二维的长度不一定,第一维的长度为5;完整代码
public class TwoDArray{public static void main(String[] args){int[][] arr = new int[5][];arr[0]=new int[2];arr[1]=new int[3];arr[2]=new int[4];arr[3]=new int[5];arr[4]=new int[6];for(int i=0;i<arr.length;i++){for(int j=0;j<arr[i].length;j++){arr[i][j]=i*10+j}}System.out.println("遍历:");for (int[] subArr : arr){for(int num : subArr){System.out.print(num+" ");}System.out.println();}}
}
问题四
类相当于一个模板 定义一个大的集合,对象是类的具体实现,是具体的某一个
math类没有对象
string里大多数是public的方法,一个用于储存字符串的值的private final char value[]属性是private方法
设置的原因是防止内部内容被外部直接修改,保障string的不可变性,public的方法都是获取值的 不涉及修改
问题五
这两种类型的封装性更好,防止被其他类随意修改属性值
问题六
一.声明时
public class XXX(){...
}
二.构造方法中
public Person(){...
}