读《疯狂Java讲义》笔记总结一

时间:2022-04-03 08:28:18

最近在读《疯狂Java讲义》,现把其中遇到的一些自己以前没掌握的点儿记录下来。

1.字符串相关

  • 字符串不是基本类型,字符串是一个类,也就是一个引用类型。
  • 字符串转int类型
    String a = "45" ;
    int iValue = Integer.parseInt(a) ;

2.求余运算符

  • %: 求余运算符。
  • 求余运算的结果并不一定总是整数。如果求余运算符的两个操作数中有一个或者两个都是浮点数,则允许第二个操作数是0或0.0,只是求余运算的结果是非数:NaN。

3.&与&&的区别(|与‖相似)

  • &总会计算前后两个数,而&&先计算左边的操作数,如果左边的操作数为false,则直接返回false,根本不会计算右边的操作数。

4.循环相关

  • break语句不仅可以直接结束其所在的循环,还可以直接结束其外层循环。此时,需要在break后紧跟一个标签,这个标签用于识别一个外层循环。如下所示:
  • 读《疯狂Java讲义》笔记总结一
  • continue后也可以紧跟一个标签,用于直接跳过标签所标识循环的当次循环的剩下语句,重新开始下一次循环。
5.数组的定义
  • (1)type[ ] arrayName
  • (2)type arrayName[ ]
  • 尽量使用第一种,有更好的语意,具有更好的可读性。
6.覆盖
  • 如果在子类里定义了与父类中已有变量同名的变量,那么子类中定义的变量会隐藏父类中定义的变量。注意不是完全覆盖,因此系统在创建子类对象时,依然会为父类中定义的、被隐藏的变量分配内存空间。
  • 为了在子类方法中访问父类中定义的、被隐藏的实例变量,或为了在子类方法中调用父类中定义的、被覆盖(Override)的方法,可以通过super.作为限定来调用这些实例变量和实例方法。
7.instanceof运算符
  • instanceof运算符前面操作数的编译时类型要么与后面的类相同,要么与后面的类具有父子继承关系,否则会引起编译错误。比如:
    String a = "Hello" ;
    //String类与Math类没有继承关系,所以下面代码无法通过编译
    System.p("字符串是否是Math类的实例: " + (a instanceof Math)) ;
8.初始化块
  • 实际上初始化块是一个假象,使用javac命令编译Java类后,该Java类中的初始化块会消失——初始化块中代码会被 “还原” 到每个构造器中,且位于构造器所有代码的前面。

9.参数传递

读《疯狂Java讲义》笔记总结一


10.参数传递之形参个数可变

读《疯狂Java讲义》笔记总结一

读《疯狂Java讲义》笔记总结一