考试内容自我思考及解惑
题目3:如有定义 int a = 2;则执行完语句 a+=a-=a*a;后,a的值是()
A、0 B、4 C、8 D、-4
正确答案是 A 0
解惑:这条语句相当于 a+=(a-=(a*a))
但是这句表达式 会被拆分 为 a=a+(a-a*a) 然后赋值计算
疑惑问题:+=会改变a的值,返回一个 数字 而不是一个变量 a
比如 :a+=a 返回一个 4 已经计算完毕 假如我们 把它括弧 再想给它赋值 就会出现错误
这题水太深,深入理解有没有必要,所以就这样吧。
题目14:分析程序
1 package com.zhuoyue.test; 2 3 public class Test { 4 5 public static void main(String[] args) { 6 String text = new String("java"); 7 replaceJ(text); 8 System.out.println(text); 9 } 10 11 public static void replaceJ(String s){ 12 s = s.replace('j', 'J'); 13 } 14 15 }
text的值到底是什么呢?答案是 java ,这里传递的是 是一个 值 而不是引用地址 String类型比较特殊。
接口可以多继承接口,一个接口或者类不可以继承或实现自己
数组中,length是属性
字符串中,length是方法 length()
集合:size();
写语句要可执行,1;是不对的,但是字符串a.length();,是对的,调用了方法。数组a.length;是错的,没有表达式。
int相除默认是int,必须要进行处理。*1.0作为处理。