java string 扩展_JAVA学习笔记之String常用函数和String扩展

处理String的常用工具函数:

subString(); //前面包含,后面不包含。 (适合大多数API)

trim(); //去掉字符串前面后面的空格

常用的String函数:

通过字符串中特定的符号,将字符串分割为多个字符串数组:

Split(); //分割很严格参数是String

//String s1 = “caihongwang,时彦芳,李梦川”;

//String[] s2 = s1.split(“,”);

将基本数据类型转换为字符串类型:int---------------->String

String str = String.valueOf(1); //将基本数据类型转换为String类型

将字符串类型转换为基本数据类型:String----------------->int

Int a = Interger.parseInt(“1”);

Integer类叫做int类型的包装类,int是基本类型,对应于他的Integer是引用类型。

String常用的函数:

78991105_1

78991105_2

根据String类的API执行线面代码:

78991105_3

78991105_4

String扩展:StringBuffer和StringBuilder

这两个类创建出来的对象是可以改变的,那么什么时候使用他们?

答:当定义出来的字符串变量需要做频繁的更改。

String str = “I”;

Str = str + “like”;

Str = str +”java”;

内存分配图:

78991105_5

因为String,会产生较多的辅助对象 容易浪费内存。

垃圾回收制:将无用的,没有引用的对象进行回收的一种机制,但是内存回收的时候需要耗费一定时间,创建(即内存的分配)也需要一定时间,系统性能降低(代码的执行速度降低),而且为额外对象分配辅助内存,浪费内存。

StringBuilder:

StringBuilder strB = new StringBuilder(); //其实底层创建了一个长度为16字符数组,默认值是0,但是不会让你访问。就算使用strB.length求数组的值也是0. Count表示是实际存啦多少个字符。

当count大于数组的长度时,数组的长度会自动扩充。 数组扩充的算法:原有长度*2+2。

78991105_6

第一种创建方式

StringBuilder sb = new StringBuilder();

第二种创建方式StringBuilder sb = new StringBuilder('I');

JDK = JRE + javac

JRE = JVM(相当于java) + 类库

StringBuilder和StringBuffer在使用上是完全相同,只是底层有点不相同

区别:StringBuilder不支持多线程 非线程安全

单线程(只有main线程)的时候使用StringBuilder的效率比较高

StringBuffer 支持多线程 线程安全

面试题1:String ,StringBuilder和StringBuffer的区别(和如何使用)?

String类创建的对象,是字符串常量,对象一旦创建,其值就不可以改变,但是左边是引用,右边才是对象。

StringBuilder和StringBuffer类创建的对象,是字符串变量,对象一旦被创建,其值是可以被改变。

如果字符串的值需要经常改变,就在StringBuffer和StringBuilder中二选一。如果是在单线程中最好选择StringBuilder,多线程就选择StringBuffer。

面试题2: StringBuilder对String + 的优化。

String s1 = “I”;

S1 = s1 + “asd”;

S1 = s1 + “asdf”;

在编译时已经对String + 进行啦优化,会将String类型弄成StringBuffer然后最后将它变为String类型。仅仅是对一行代码String + 多个字符串进行优化。单独分开的话,没有什么明显的效果。

78991105_7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值