Java基础知识
1.1 String、StringBuffer、StringBuilder三者区别
String字符串常量
StringBuffer字符串变量(线性安全)
StringBuilder字符串变量(非线程安全)
String中的String类使用final关键字修饰字符数组来保存字符串,private final char value[],String对象是不可变的,也就是可以理解为常量,线程安全。
AbstractStringBuilder是StringBuilder与StringBuffer的公共父类,定义了一些字符串的基本操作,如expandCapacity、append、insert、indexOf等公共方法。
StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。
StringBuilder并没有对方法进行同步锁,所以是非线程安全的。
1.2 接口和抽象类的区别
实现:抽象类的子类使用extends来继承;接口必须使用implements来实现接口。
构造函数:抽象类可以有构造函数;接口不能有。
main方法:抽象类可以有main方法,并且我们能运行它;接口不能有main方法。
实现数量:类可以实现很多接口;但是只能继承一个抽象类。
访问修饰符:接口中的方法默认使用public修饰;抽象类中的方法可以是任意访问修饰符。