【摘要二】Java基础知识

  • 一个 Class 对象实际上表示的是一个类型,而这个类型未必一定是一种类。例如,int 不是类, 但 int.class 是一个 Class 类型的对象。
  • 接口中的方法都自动地被设置为 public,接口中的属性将被自动设为 public static final。
  • 接口不能定义属性,但是可以定义常量,同样,接口不存在构造方法。
  • 从某种意义上来说,接口是没有实例域的抽象类,但是在现如今的开发中,很少使用抽象类,我想其中的原因是因为抽象类是extend,因此最多只能有1个,二接口可以implements,可以多个。
  • 接口中可以存在静态方法,但是这有违接口作为抽象规范的初衷,更适当的做法是将静态方法放在伴生类中,因此,诞生于早期的Java语言中,存在着Collection/Collections 或 Path/Paths(前者是接口,后者是它的工具类)
  • 接口中可以使用default关键字来定义默认方法,通常方法体里什么都不写(当然,也可以写上方法体)该方法会被每个实现接口的类继承,是的,不是实现,而是继承。这有什么作用呢,为什么不定义抽象方法,而要加上一个空方法体的默认方法呢,作用如下:
    在这里插入图片描述
  • 函数式接口:只有一个抽象方法的接口, 当需要这种接口时, 可以使用lambda 表达式。
  • 内部类语法复杂(匿名内部类更甚),而且它违背了Java语言设计简单的理念,更何况还有局部内部类。
  • JVM虚拟机不存在泛型类对象,都是普通类,实际上在编译的时候,会进行擦除类型变量,并替换为限定类型(如果限定为User,则为User,如果无限定,则是Object)
    在这里插入图片描述
posted @ 2022-03-24 08:56  layman~  阅读(16)  评论(0编辑  收藏  举报