1.Java的基本数据类型有哪些(了解)
    整数型: byte、short、int、long
    浮点型 : float、double
    字符型 :char
    布尔型 :boolean

    2..JDK JRE JVM 的区别
    image.png
    JDK:是整个java的核心和开发工具包。包括:java运行环境JRE、java工具和java基础类库。
    JEK:试运行JAVA程序所必须的环境集合。包括:java虚拟机和java程序的一些核心类库。
    JVM:是整个java实现跨平台的最核心的部分,能够运行以java语言写作的软件程序。

    3.重载和重写的区别
    重载:发生在同一个类中,方法名相同,(参数列表、类型、个数、顺序不同)。 和返回值无关。

    重写:子类重写父类的方法,方法名和参数列表相同,只有方法体不同。返回值范围和抛出异常的范围要少于父类,父类私有方法子类不可以重写。总之一句:子类要比父类强大一些。

    4.Java中==和equals的区别
    ==的作用:
    在基本数据类型里面比较对象的值
    在引用数据类型里面比较对象的地址
    equals的作用:
    默认比较对象的地址,重写equals,比较对象的内容(属性)
    一般Java自带的类都重写了equals
    String重写了equals方法,比较字符串的内容

    面试:请解释字符串比较中,“==”和“equals”的区别
    ==:比较对象的值
    equals:比较对象的内容

    5.String、StringBuffer、StringBuilder三者之间的区别(必会):
    String:字符串,常量。使用 final 修饰字符数组来保存字符串
    StringBuffer:拼接字符串,对象可变,对方法加了同步锁,线程安全高,效率低。
    StringBuilder:拼接字符串,对象可变,没有对方法加同步锁,线程安全低,效率高。
    小结:
    (1)如果要操作少量的数据用 String。
    (2)多线程操作字符串缓冲区下操作大量数据用 StringBuffer;
    (3)单线程操作字符串缓冲区下操作大量数据用 StringBuilder。

    6.接口和抽象类的区别是什么?(五个方面)
    接口:接口使用 implements来实现, 没有构造器和方法体,只有抽象方法,类可以实现多个接口。默认使用public修饰
    抽象类:抽象类使用extends来继承,有构造器、抽象方法,非抽象方法可以有方法体。抽象类只能继承一个,可以是任意访问的修饰符。