String类详解
1. 说明
- String对象用于保存字符串,也就是一组字符序列
- 字符串常量对象是用双引号括起来的字符序列
- 字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节
- String类比较常用的构造器
- String s1 = new String()
- String s2 = new String(String original)
- String s3 = new String(char[] c)
- String s4 = new String(char[] c, int startIndex, int count)
- String 实现了Serializable,说明String可以串行化
- String 实现了Comparable接口,说明String对象可以比较
2. 创建String对象的两种方式
- 方式1:直接赋值 String s = "avc";
- 方式2:调用构造器 String s = new String(" ");
3. 两种创建String对象的区别
- 方式1:先从常量池查看是否有”avc“数据空间,如果有,直接指向,如果没有则重新创建然后指向,最终指向的是常量池的空间地址
- 方式2:先在堆中创建空间,里面维护了value属性,指向常量池的avc空间,如果常量池没有avc,重新创建,如果有,直接通过value指向,最终指向的是堆中的空间地址
- 当调用intern()方法时,如果池已经包含一个等于此String对象的字符串,则返回池中的字符串,否则将此String对象添加到池中,并返回此String对象的引用
- intern()方法最终返回的是常量池的地址
4. 字符串的特性
- String是一个final类,代表不可变的字符序列
- 字符串是不可变的,一个字符串对象一旦被分配,其内容是不可变的
5. String类的常见方法
说明:
- String类是保存字符串常量的,每次更新都需要重新开辟空间,效率较低,因此Java设计者还提供了StringBuffer和StringBuilder来增强String的功能,并提高效率
常见方法(详解见API)
- equals()
- equalsIgnoreCase
- length
- indexOf
- lastIndexOf
- substring
- trim():去前后空格
- charAt
- toUpperCae
- toLowerCase
- concat
- replace
- split
- compareTo
- toCharArray
- format
posted @
2021-05-09 22:13
mx_info
阅读(
130)
评论()
收藏
举报