003--深入理解字符串+面试题

VIP免费
2024-12-11 3 0 22.62KB 8 页 5.9玖币
侵权投诉
深入理解字符串 + 面试题
字符串介绍
字符串是程序开发当中,使用最频繁的类型之一,有着与基础类型相同的地位,甚至在
JVMJava 虚拟机)编译的时候会对字符串做特殊的处理,比如拼加操作可能会被 JVM
接合成为一个最终的字符串,从而到达高效运行的目的。
1 String 特性
String 是标准的不可变类(immutable),对它的任何改动,其实就是创建了一个新
对象,再把引用指向该对象;
String 对象赋值之后就会在常量池中缓存,如果下次创建会判定常量池是否已经有缓
存对象,如果有的话直接返回该引用给创建者。
2 字符串创建
字符串创建的两种方式:
String str = “laowang”;
String str = new String(“laowang”);
3 注意事项
查看下面代码:
String s1 = "laowang";
String s2 = s1;
String s3 = new String(s1);
System.out.println(s1 == s2);
System.out.println(s1 == s3);
输出结果:truefalse
为什么会这样?原因是 s3 使用 new String 时一定会在堆中重新创建一个内存区域,而 s2
则会直接使用了 s1 的引用,所以得到的结果也完全不同。
字符串的使用
1 字符串拼加
字符串拼加的几种方式:
String str = “lao” + “wang”;
String str = “lao”; str += “wang”;
String str = “lao”; String str2 = str + “wang”;
2 JVM 对字符串的优化
根据前面的知识我们知道,对于 String 的任何操作其实是创建了一个新对象,然后再把
引用地址返回该对象,但 JVM 也会对 String 进行特殊处理,以此来提供程序的运行效
率,比如以下代码:
String str = "hi," + "lao" + "wang";
经过 JVM 优化后的代码是这样的:
String str = "hi,laowang";
验证代码如下:
String str = "hi," + "lao" + "wang";
String str2 = "hi,laowang";
System.out.println(str == str2);
执行的结果:true
这就说明 JVM 在某些情况下会特殊处理 String 类型。
3 字符串截取
字符串的截取使用 substring() 方法,使用如下:
String str = "abcdef";
// 结果:cdef(从下标为 2的开始截取到最后,包含开始下标)
System.out.println(str.substring(2));
// 结果:cd(从下标为 2的开始截取到下标为 4的,包含开始下标不包含结束下标)
System.out.println(str.substring(2,4));
4 字符串格式化
字符串格式化可以让代码更简洁更直观,比如, 我叫老王,今年 30 岁,喜欢读书 在这
条信息中:姓名、年龄、兴趣都是要动态改变的,如果使用 +”号拼接的话很容易出错,
这个时候字符串格式化方法 String.format() 就派上用场了,代码如下:
String str = String.format("我叫%s,今年%d 岁,喜欢%s", "老王", 30, "读书");
转换符说明列表:
转换符 说明
%s 字符串类型
%d 整数类型(十进制)
%c 字符类型
%b 布尔类型
%x 整数类型(十六进制)
%o 整数类型(八进制)
%f 浮点类型
摘要:

深入理解字符串+面试题字符串介绍字符串是程序开发当中,使用最频繁的类型之一,有着与基础类型相同的地位,甚至在JVM(Java虚拟机)编译的时候会对字符串做特殊的处理,比如拼加操作可能会被JVM直接合成为一个最终的字符串,从而到达高效运行的目的。1String特性•String是标准的不可变类(immutable),对它的任何改动,其实就是创建了一个新对象,再把引用指向该对象;•String对象赋值之后就会在常量池中缓存,如果下次创建会判定常量池是否已经有缓存对象,如果有的话直接返回该引用给创建者。2字符串创建字符串创建的两种方式:•Stringstr=“laowang”;•Stringstr=...

展开>> 收起<<
003--深入理解字符串+面试题.docx

共8页,预览2页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:8 页 大小:22.62KB 格式:DOCX 时间:2024-12-11

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 8
客服
关注