首页 > 编程知识 正文

java获取当前时间,stringbuffer没重写

时间:2023-05-06 19:09:54 阅读:47066 作者:3086

前言

String和StringBuffer本质上修饰字符串,只是意义不同,StringBuffer被称为字符串缓冲区

我们先来看看string类的例子

公共类工作1 {

publicstaticvoidmain (字符串[ ] args ) {

字符串s=' hello ';

stringS1=s.substring(3;

system.out.println(s==S1; //结果为假

}

}

让我们看一下StringBuffer类的示例

公共类工作1 {

publicstaticvoidmain (字符串[ ] args ) {

string buffer ab1=new string buffer (;

string buffer ab2=ab1.append (hello );

system.out.println(ab1==ab2; //结果为true

}

}

来看,两者的内存分布图如下所示。

根据内存映射,除了直接使用String s='hello '创建新对象之外,String不会创建新对象。 除此之外,无论是方法返回的String类型、直接从构造函数创建的字符串,还是变量的拼接,只要两边有一个变量,就必须创建新对象

StringBuffer在StringBuffer中的方法操作中返回StringBuffer类型的变量,这与原始StringBuffer变量相同。

字符串STT1=new string (hello );

字符串STT2=新字符串(world );

system.out.println(STT1STT2;

String stt1='hello '

字符串STT2=新字符串(world );

system.out.println(STT1'world ';

//上面的两个连接都可以

//这种东西可以连接起来

string buffer ab1=new string buffer (;

string buffer ab2=ab1.append (hello );

system.out.println(ab2'Hello ';

//这种东西不能拼接

string buffer ab1=new string buffer (ABC );

string buffer ab2=ab1.append (hello );

system.out.println(ab2ab1;

最后,我要总结三个区别:

1、String可以用算术运算符连接字符串(两边有一个变量字符串也可以用常量字符串连接) (StringBuffer也不能)如果除了两边以外有一个常量字符串对象,例如ab2 ' heed

2、String表示线程不安全,执行效率高。 字符串缓冲区则相反

3、String对象的值不变StringBuffer的值是可变的(即,在两者之间可以用方法修改原始StringBuffer变量并将其分配给新的StringBuffer变量) )

4、创建String对象时,可以选择String a='abc ',但不能直接这样创建StringBuffer。 string buffer pj1=new string buffer (' ABC ' );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。