JAVA基础知识归纳(一)

最近总有杠精在Q群跟我杠JAVA的一些细枝末节的基础知识,故出一系列“科普文”来怒怼杠精

JAVA switch语句表达式支持类型
支持类型大致有六种:
int
char
byte
short
String(java 7才允许)
枚举
常见的boolean与实数性不支持

JAVA何种情况下需要强制类型转换

  1. 父类转换为子类时
  2. 基本数据类型由精度高向精度低转换时
    (精度排序由低到高:byte short char int long float double)

JAVA static 方法与普通方法的区别

  • static方法被称为静态方法,调用类中的静态方法时,不需要将此类进行实例化就可以直接调用,static方法不可以调用this对象,也不可以调用类中的非静态方法与非静态属性,而非static方法则可以调用static方法,static方法或属性属于整个类不属于某个实例
    生存周期:全局

main方法为什么必须是静态(static)的

  • 因为main方法由JAVA虚拟机来调用,访问静态方法是不需要将类实例化,
    且如果main方法不声明为静态的,JVM就必须创建main类的实例,
    因为构造器可以被重载,JVM就没法确定调用哪个main方法。故main方法必须为静态的

main方法可以有几个

  • 在同一个类中main方法有且只有一个,在一个完整的项目中每个类都可以有一个main方法,但只有一个main方法被执行。

方法重载与重写的区别

  • 重载在同一类中,重写在不同类中。 重载是在统一类中声明多个不同参数或不同定义的同名方法
    重写是父类与子类之间的多态性,若子类中有与父类完全相同(具有相同的方法名、返回类型和参数表)的方法,则子类中的新方法将覆盖父类中的旧方法

abstract(抽象类)与interface(接口)的关系
相同点:

  1. 都无法被直接实例化
  2. 一个类如果继承并要实现一个接口/抽象类的话,就必须对其中的抽象方法进行实现,否则依然得声明为抽象类
  3. 接口是特殊的抽象类,比抽象的概念更进一步

不同点:

  1. 接口子类由implements来继承,子类可以继承多个接口
  2. 抽象类子类由extends关键字来继承,只能继承一个
  3. 接口不可声明构造器
  4. 抽象类可以声明构造器
  5. 抽象类可以有普通方法、静态方法与抽象方法
  6. 接口中方法默认由public abstruct修饰为抽象方法,不可私有,从jdk8开始(在这之前不可以)也支持有普通方法,但必须由default来修饰,也是从jdk8开始支持静态方法的定义

易错处:

  • abstract方法必须在abstract类中,而abstract类中不一定全都是abstract方法,他可以有普通方法

杠精抬杠处:

  • 接口不是(战术后仰.jpg)抽象类,为什么也有抽象方法…
  • 为什么看上面相同点

普通方法与抽象方法区别

  • 普通方法可以被子类重写也可以不被重写
  • 抽象方法必须被子类重写,除非该子类也是抽象类
  • 抽象方法没有方法体
  • 普通方法有方法体

目前只能想到这些,如有谬误或者补充,可在评论处发言

猜你喜欢

转载自blog.csdn.net/weixin_43815930/article/details/104859307