String、== 和equals、final、abstract

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修饰

这些你都知道吗?不知道的话赶紧记一下,可能会有用哦!

发布了214 篇原创文章 · 获赞 281 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/lk1822791193/article/details/94155495
今日推荐