面试三连
1、String、StringBuffer、StringBuilder 的区别是什么?
- String 是字符串常量,每次操作都会生产新的对象,会对系统性能产生影响,适用于少量字符串操作的情况;
- StringBuilder 是字符串变量,非线程安全,推荐单线程环境下使用
- StringBuffer 也是字符串变量,线程安全,推荐多线程环境下使用
2、String str=“dog” 与 String str=new String(“dog”) 一样吗?
- 不一样,因为内存的分配方式不一样。
- String str=“dog”,java 虚拟机会将其分配到常量池中;
- String str = new String(“dog”) 则会被分到堆内存中。
3、接口和抽象类的区别是什么?
- 接口使用 implements 来实现接口;抽象类的子类使用 extends 来继承
- 接口不能有构造函数;抽象类可以有构造函数
- 一个类只能继承一个抽象类,但可以实现多个接口
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的
- 抽象类可以提供成员方法的实现细节,而接口中只能存在 public abstract 方法
句子三连
- It doesn’t matter.
没关系。 - What is he talking about?
他在说些什么? - Congratulations.
恭喜恭喜。