1.简述String 和 StringBuilder以及StringBuffer的区别
1.String vs StringBuffer
String: 字符常量
StringBuffer:字符变量
所以,如果在一个循环操作,不断对字符串进行拼接操作,那么使用String会不断创建新的对象,这个效率会比较低,在这种情况下,建议采用StringBuffer
2.StringBuffer vs StringBuilder
StringBuffer:线程安全
StringBuilder:线程不安全
3.执行效率:
StringBulider>StringBuffer>String
2.简述Overload-重载 和 Override-重写 的区别
override(重写)
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。
3.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承 实体类(concrete class)? 抽象类中是否可以有静态的 main 方法?
1.接口可继承接口
2.抽象类可实现接口
3.抽象类可以继承实体类,因为所有类都继承Object类
4.抽象类中可以有静态main方法,静态方法属于类,不需要实例化。