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

    2.JVM JRE JDK 的区别 (必会)
    JVM: java虚拟机,加载class文件,解释给操作系统执行的(不提供单独下载)
    JRE: java运行时环境(JVA+系统类库,提供客户使用)
    JDK: java开发环境(JRE+开发工具)

    3.重载和重写的区别(必会
    方法重载 发生在同一个类中,如果功能相似,可以命名相同的方法名;
    条件一:方法名相同;
    条件二:在同一个类中;
    条件三:形参参数列表不同; PS: 和返回值类型无关
    方法重写: 发生在父子类中,
    方法名.参数列表必须相同,返回值范围小于等于父类,抛出的异 常范围小于等于父类,
    访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能重写该方法。

    4.String、StringBuffer、StringBuilder三者之间的区别(必会)(javase进阶)
    三者底层都是byte[ ]数组,而只有String 是final修饰的,是不可变的,
    所以在字符串的拼接中String是通过创建新的对象进行(假) 拼接,旧对象失去引用后被垃圾回收器回收,String频繁的创建回收(效率低)而后者是直接改对象里面的内容。
    1、StringBuffer/StringBuilder
    可变长度字符串,在原长度上追加,适合字符串的频繁拼接:
    2、StringBuffer/StringBuilder初始化容量16.
    如何优化StringBuffer的性能?
    在创建的时候尽可能的给定一个合理的初始化容量,减少底层数组的扩容次数(效率高)
    3、StringBuffer是线程安全的。StringBuilder是非线程安全的。
    (1)如果要操作少量的数据用 String;
    (2)多线程操作字符串缓冲区下操作大量数据用 StringBuffer;
    (3)单线程操作字符串缓冲区下操作大量数据用 StringBuilder。

    5.接口和抽象类的区别是什么?(必会)
    实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。
    构造函数:抽象类可以有构造函数;接口不能有。
    main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。
    实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
    访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符