Java基础面经
Java
基础
面试官:重写与重载的区别?
- 重载:发生在同一个类中,若多个方法之间方法名相同、参数列表不同,则它们构成重载的关系。重载与方法的返回值以及访问修饰符无关,即重载的方法不能根据返回类型进行区分。
- 重写:发生在父类子类中,若子类方法想要和父类方法构成重写关系,则它的方法名、参数列表必须与父类方法相同。另外,返回值要小于等于父类方法,抛出的异常要小于等于父类方法,访问修饰符则要大于等于父类方法。还有,若父类方法的访问修饰符为private,则子类不能对其重写。
面试官: Java 中的⼏种基本数据类型是什么?对应的包装类型是什么?
Java有八种数据类型,有六个数字类型,一个字符类型,一个布尔类型,它们分别是 byte、
- List item
- short
- int
- long
- float
- double
- char
- boolean
这八种基本类型都有对应的包装类分别为:
- Byte
- Short
- Integer
- Long
- Float
- Double
- Character
- Boolean
面试官: ⾃动装箱与拆箱了解吗?原理是什么?
- 自动装箱:将基本类型用它们对应的引用类型包装起来
- 自动拆箱:将包装类型转为基本类型
原理:从字节码中,我们发现装箱其实就是调用了 包装类的valueOf()方法,拆箱其实就是调用了 xxxValue()方法。
面试官:String、StringBuffer、StringBuilder 的区别?
- 操作少量的数据: 适用 String
- 单线程操作字符串缓冲区下操作大量数据: 适用 StringBuilder
- 多线程操作字符串缓冲区下操作大量数据: 适用 StringBuffer
面试官:String可以被继承吗?
String类由final修饰,所以不能被继承。