一点点关于字符串的总结

String字符串

String是一个类,属于引用类型。

Java程序中一切使用""引起来的内容,都是这个类的实例,称为字符串对象。

字符串定义后是一个常量,值不可更改。字符串实际是一个字符数组

创建

String str="hello你好";

可变字符串

String字符串对象是一个常量,在定义后其值不可改变。

如果使用String类的对象,对其频繁更新时,就会不停地创建新的对象,重新引用。

所以如果要执行1000次重新赋值的过程,就要创建1000个字符串对象,花费很多时间和内存空间,所以效率很低。这时就需要使用可变字符串类。

StringBuilder类

用于表示可变字符串的一个类,是非线程安全的,建议在单线程环境下使用,效率略高于StringBuffer。

StringBuffer类

用于表示可变字符串的一个类,是线程安全的,建议在多线程环境下使用,效率略低于StringBuilder。StringBuilder和StringBuffer中的方法作用都一致,只不过StringBuffer中的方法使用了synchronized关键字修饰,表示一个同步方法,在多线程环境下不会出现问题。

可变字符串与不可变字符串之间的转换

有些方法如indexOf()、charAt()等,在String和StringBuilder中都存在,可以不用转换。

但有些方法如getBytes()、contains()等,只能通过String调用,这时就需要进行转换。

不可变字符串转换为可变字符串

通过创建一个可变字符串对象,将不可变字符串作为参数实现转换

//定义一个不可变字符串对象 
String str="hello"; 
//创建一个可变字符串对象,将不可变字符串对象作为参数 
StringBuilder sb = new StringBuilder(str);

可变字符串转换为不可变字符串

通过调用可变字符串的toString()方法实现转换

//创建一个可变字符串对象 
StringBuilder sb = new StringBuilder("hello"); 
//调用toString()转换为String类型 
String str=sb.toString();

包装类

Java是纯面向对象语言,宗旨是将一切事物视为对象处理。

但原始类型不属于对象,不满足面向对象的思想,但原始类型使用时无需创建对象,保存在栈中,效率

更改。

为了让原始类型也有对象的类类型,达到"万物皆对象"的思想,所以就有了包装类的概念。

**包装类就是原始类型对应的类类型。**包装类通常用于将字符串转换为对应的原始类型。

在web应用中,从浏览器中获取到后台的数据,全是String类型,一定要使用转换的方法。

装箱

所有包装类都有一个静态方法valueOf(原始类型),将某个原始类型的数据转换为相应的包装类对象,这个过程称为装箱

//手动装箱 
int i=123;//定义一个原始类型的数据 
Integer aInteger=Integer.valueOf(i);//调用包装类的valueOf()方法将原始类型转换为包 装类对象

拆箱

所有包装类都有一个原始类型Value()方法,用于将包装类对象转换为原始类型,这个过程称为

//手动拆箱 
Integer aInteger=new Integer(123);//创建一个包装类对象 
int i = aInteger.intValue();//调用包装类的"原始类型Value()"方法将其转换为原始类型

自动装箱拆箱。

在jdk1.5之后,加入了自动装箱拆箱的特性,可以直接在原始类型和对应的包装类中互相赋值

//自动装箱 
Integer aInteger=123; 
//自动拆箱 
int i=aInteger;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值