一、Java的基本数据类型有哪些(了解)

四型八种

image.png

二、JDK JRE JVM 的区别 (必会)

image.png

  1. JDK(Java Development Kit)是整个 Java 的核心,是java开发工具包,包括了 Java 运行环境 JRE、Java 工具和 Java 基础类库。
  2. JRE(Java Runtime Environment)是运行 JAVA 程序所必须的环境的集合,包含java虚拟机和java程序的一些核心类库。
  3. JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,是整个 java 实现跨平台的最核心的部分,能够运行以 Java 语言写作的软件程序。

三、重载和重写的区别(必会)

重写:在字符类找那中,其实就是在子类中把父类本身有的方法重新写一遍,子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下,对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修饰权限不能少于父类的。
重写总结
1) 发生在父类与子类之间
2) 方法名,参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同
3) 访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
4) 重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常

四、String、StringBuffer、StringBuilder三者之间的区别(必会)

1. String 字符串常量 (线程安全,不可变)
内部维护了,使用 final 关键字修饰的字符数组来保存字符串
2.StringBuffer 字符串变量(线程安全,可变)
内部对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。**3.StringBuilder 字符串变量(非线程安全)
AbstractStringBuilder,是 StringBuilder 与 StringBuffer 的公共父类,定义了一些字符串的基本操作,如 expandCapacity、append、insert、indexOf 等公共方法。
小结
1)如果要操作少量的数据用 String;
2)多线程操作字符串缓冲区下操作大量数据用 StringBuffer;
3)单线程操作字符串缓冲区下操作大量数据用 StringBuilder。

五、接口和抽象类的区别是什么?(必会)

  • 相同点:不能实例化;都可以包含抽象方法。
  • 不同点:

    1. 抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。
    2. 构造函数:抽象类可以有构造函数;接口不能有。
    3. 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
    4. 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符
    5. 类:单继承性 接口:多继承

      类与接口:多实现