java学习之路--零碎的知识笔记

时间:2023-03-09 21:22:38
java学习之路--零碎的知识笔记

java运算符:

  自增自减运算符:

  • int b = ++a; 拆分运算过程为: a=a+1=4; b=a=4, 最后结果为b=4,a=4 前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。

  • int d = --c; 拆分运算过程为: c=c-1=2; d=c=2, 最后结果为d=2,c=2 后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算 。

逻辑运算符:假设布尔变量A为真,B为假

  • && 与逻辑运算符 当两个变量同时为真时,条件为真 A&&B 假
  • || 或逻辑运算符 当两个变量任何一个为真时,条件为真 A||B 真
  • ! 非逻辑运算符 反转变量状态的逻辑状态,如果条件为真,加上非运算符,条件为假  !(A&&B) 真

java StringBuffer和StringBuilder类:

  • 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

super 与 this 关键字

  • super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
  • this关键字:指向自己的引用。

java抽象类和抽象方法

  • 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

  • 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

  • 父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。

  • 在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

  • 如果你想设计这样一个类,该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么你可以在父类中声明该方法为抽象方法。Abstract关键字同样可以用来声明抽象方法,抽象方法只包含一个方法名,而没有方法体。

  • 声明抽象方法会造成以下两个后果

  • ①:如果一个类包含抽象方法,那么该类必须是抽象类。

  • ②:任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
  • ③:继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象。
  • 总结
  • 1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

  • 2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

  • 3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

  • 4. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。

  • 5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

java 接口:

  • 接口是一个抽象类型,是抽象方法的集合,一个类通过实现接口的方式,来实现接口的抽象方法。
  • 接口和类很相似,类中包含属性和方法,而接口中则包含要实现的方法。
  • 出发实现接口的类是抽象类,否则要实现接口中的所有方法。
  • 接口无法被实例化,但是可以被实现,一个实现接口的类必须实现接口中的所有方法,否则必须被声明为抽象类。
  • 接口与类的区别
  • ①一个接口和类都可以包含多个方法
  • ②接口不能用于实例化
  • ③接口没有构造方法
  • ④接口中所有的方法必须是抽象方法
  • ⑤接口不能被继承,可以被实现
  • ⑥接口支持多继承
  • 接口和抽象类的区别
  • ①抽象类的方法可以有方法体,接口中没有方法体
  • ②抽象类中的成员变量可以是各种类型的,而接口中的成员变量只public static final 类型的。
  • ③接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
  • ④一个类只能继承一个抽象类,而一个类却可以实现多个接口。
  • 接口的实现
  • 当类实现接口的时候,必须实现接口中的所有方法,否则该类只能声明为抽象类。
  • 类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。