第七次作业

1.String类型有什么特点?

两种实例化方式:
(1)String可以采用直接赋值的形式进行操作,这一点像基本数据类型的赋值操作一样。

String str = "hello"

(2)String是一个类,所以可以new一个对象

String str = new String("hello");

2.String什么时候进行值比较,什么时候进行引用比较?

stringA.equals(stringB);进行值比较
stringA==stringB;进行引用比较

3.String与StringBuffer的区别是什么?如何互相转换?
区别:
(1)StringBuffer对象的值是可变的,对字符串的增加、插入、修改、删除等操作比String高效(不需多次创建新的对象)
(2)String对象是不可变的,在String类中每一个看起来会修改String对象内容的方法,实质都是创建了一个全新的String对象。

转换方法:

String s = “a” + “b” ;
String st = new StringBuffer().append(“a” ).append(“b” ).toString();
toString()方法专属于StringBuffer

String s = “hello”;
StringBuffer sb = new StringBuffer(s);
String a = new String(sb);

4.请简述String, StringBuffer, StringBuilder三者之间的共同点与区别,应该分别在何种场景下使用?
运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String
String最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的

String:适用于少量的字符串操作的情况

StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

5.为什么不建议在 for循环中使用 “+” 进行字符串拼接?
因为使用“+”进行字符串拼接,操作数为String类,String类是不可变对象,每次使用“+”进行字符串拼接时都会创建新的对象,在for循环中使用“+”拼接字符串会进行大量的创建对象的操作,由此导致程序运行速度缓慢

6. 什么是字符串的编码与解码?请举例说明

编码:将unicode字符集转换为本地字符集的过程
解码:将本地字符集转换为unicode字符集的过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值