移动端网站开发流程图,单站点网站,郑州头条最新消息,电器网站制作价格Java中的String类作为存储和操作文本数据的基本类型#xff0c;是开发过程中最常用的类型。
String类型的声明及初始化与基本数据类型非常相似#xff1a;
String name lcy;但是String类型是引用类型#xff0c;有着非常丰富的处理字符串的方法。正是因为其重…Java中的String类作为存储和操作文本数据的基本类型是开发过程中最常用的类型。
String类型的声明及初始化与基本数据类型非常相似
String name lcy;但是String类型是引用类型有着非常丰富的处理字符串的方法。正是因为其重要性Sun公司针对String类型做了很多优化使得String类型使用起来非常灵活、高效、简单。
作为Java程序员不仅要掌握String类型的用法还应该深入原理领略其设计之妙和设计之美。
一String介绍
1初识String
官网API文档 String类位于java.lang包下使用这个包下的类时无需用import显式导入 String类被定义为final类型不能被继承其方法不能被重写 Java中的String类型实现了几个关键接口这些接口赋予了String特定的功能和行为具体包括 实现了Serializable接口表明String对象是可以被序列化的即它可以被转换成一系列字节保存到磁盘上或通过网络进行传输之后还能恢复成原来的状态 实现了CharSequence接口这使得String对象具备处理组成字符串的单个字符的能力 实现了Comparable接口String对象可以直接与其他String对象进行自然排序基于字典顺序。这使得字符串可以直接用于排序算法中或者存储在需要排序的集合如TreeSet、TreeMap里而无需额外提供比较器
这些接口的实现使得String不仅能够作为基本的文本载体还能够在更广泛的上下文中发挥功能比如参与序列化操作、在泛型算法中作为字符序列被操作以及在需要比较和排序的场合自动排序体现了其设计的通用性和实用性。
2不可变的字符串对象
API文档上明确说明String objects are immutable 即字符串对象是不可变的应该如何理解不可变呢
创建字符串对象后字符串的值不能被修改String不提供任何方法修改字符串的值。如下图字符串对象创建后堆内存中存储了字符串lcy那么除非整个对象被垃圾回收否则无法通过String的API修改内存中的值值始终都是lcy。 有的同学会举分离下面的代码可以改变字符串的值你怎么解释呢
name name hello;
System.out.println(name);// 输出 lcy hello上面代码表面上改变了name的值实际上 name hello 这行代码会创建一个新对象name变量指向新对象002原来的对象001是没有被修改的 二String方法
1构造字符串对象
String类提供的构造方法比较多常见的有以下几种
1.1 字面量
通过字面量创建一个字符串对象 String str “Hello Java”;1.2 空构造函数
String str new String();该字符串对象的值为空字符串.
1.3 通过字符数组构造
char[] chars {H, e, l, l, o};
String str new String(chars);1.4 通过字符数组的一部分构造
char[] chars {H, e, l, l, o, , W, o, r, l, d};
String str new String(chars, 0, 5); // 取前5个字符1.5 通过字节数组构造
byte[] bytes {72, 101, 108, 108, 111}; // ASCII编码的Hello
String str new String(bytes);2遍历
for(char c : str.toCharArray()) {System.out.println(c);
}3截取
String subStr str.substring(0, 5); // 获取前五个字符4替换
String replaced str.replace(World, Java); // 将World替换为Java5查找
int index str.indexOf(World); // 返回World首次出现的位置6比较
boolean isEqual str.equals(Hello, World!); // 比较内容是否相等