2.1:一切都是对象,但是创建的是引用,如String s;创建引用来控制对象,new关键字表示“给我一个新对象”,所以String s = new String("abc");
3.4:赋值,对象赋值,操作的是引用,如c=d则意味着c,d都指向了d的引用,此时改变d,c一直跟着改变。
3.8.1:短路,与或非时,逻辑表达式不必全部计算,如test(1)&test(2)&test(3),当test(1)为false时,后续不需要计算,使潜在性能提升。
4.3:while()与do while()不同之处在于do while()至少执行一次,while使用更为普遍
4.4:foreach语句,如有一个int型数组a[10],for(int x:a){print(x);}即可输出每一个数组元素。
4.7:标签,比如:
@Test
public void poitest(){
int i=0;
int j=0;
int1:
while(true){
System.out.println("iiii:"+i++);
while(true){
System.out.println("jjjj:"+j++);
if(j%3==0){
System.out.println("j break");
break;
}
}
if(i==3){
break int1;
}
}
}
int1为标签,标签的内容为while循环。break时可以直接指定内容,但是,并不推荐标签,会使程序难以分析,使用的唯一理由为嵌套循环的存在,想在多层嵌套中break或者continue
5.3:构造器,如果已经定义了构造器(无论是否带参数),编译器都不会再默认创建构造器,比如
class bird{
bird(int a){
}
}
main{
bird bird = new bird();//就会报错,因为没有默认的无参构造器,必须带Int参数
}
5.7:构造器初始化:变量定义在任何方法(包括构造器)之前初始化,先静态,再非静态,
8:初始化问题:先祖先类构造器,再父类构造器,再构造器,再申明变量顺序
多态继承的使用范畴-->is a ,当两者关系为“是一个”时可以考虑使用extends方便确定基类方法变量
后续的枚举、Swing等等,个人拙见:有的完全没必要看,比如图形化(使用过Java Swing+awt写过象棋,但已经淘汰的技术了)。感觉有一定经验后这本书的附加价值不太高,现在的项目目的性太明显,比如需要查看jsonobject的所有数据,用enum枚举时百度就行了,不太需要知道的太多,而且枚举本来也有弊端,不如迭代器
有几个词都忘了,泛型、反射、多态等,可以复习一下