String、StringBuffer、StringBuilder的区别
String:对于String的每次修改都会创建一个新的String对象,不适用于字符串内容经常更换的条件。
StringBuilder :在原有对象的基础上修改不会创建新的对象,非线程安全,性能高于StringBuffer,适用于单线程。
StringBuffer : 在原有对象的基础上修改不会创建新的对象,线程安全,适用于多线程环境。
== 和equals的区别
==: 值类型:比较两个对象的值是否相同。 引用类型:比较等号两边的应用是否相同。
equals:本质和==一样,但是String和Integer重写的了它,把比较引用改成了比较值。
两个对象equals()相等,他们的hashCode()一定相等。
两个对象的hashcode()相同,但是他们equals()不一定是true!
因为hash散列值有冲突的情况,虽然概率很低。
字符串倒置的方法
StringBuilder和StringBuffer有reverse()的方法
StringBuffer a = new StringBuffer("1234567");
System.out.println(a.reverse());
String两种声明方式
// 放在了栈内存上
String test1 = "test1";
// 放在了堆内存上
String test2 = new String ("test2");
final的用处
修饰类:此类无法被继承(所以不能修饰abstract类:因为抽象类就是用来被继承的)
修饰方法:此方法不能被重写
修饰变量:变为常量,且必须在声明时赋值
抽象类和接口的区别
实现:抽象类用extends来继承;接口用implements来实现
构造函数:抽象类可以有多个,接口不能有
实现数量:一个类可以继承一个抽象类,但是可以实现多接口
访问修饰符:抽象类可以用任意访问修饰符,接口方法使用默认的public修饰
这些你都知道吗?不知道的话赶紧记一下,可能会有用哦!