Java学习-day4-字符串(String)
程序员文章站
2022-03-01 13:05:20
...
字符串(String)
-
值传递
-
基本类型的值传递:方法调用时,基本类型是拷贝值,拷贝完成后相互之间独立,是值之间进行赋值
public static void main(String[] args){ int x=2; calc(x); System.out.println(x); } private static void calc(int x){ x=x+10; }
-
引用类型的值传递:方法调用时,引用类型是拷贝引用的值,拷贝完成后,两个变量指向同一个对象,这里通过x1改变对象的值,再通过x访问被改变的对象,因此值发生改变。虚拟地址之间进行赋值
public static void main(String[] args){ int[] x={2,3,5}; calc(x); System.out.println(Arrays.toString(x)); } Private static void calc(int[] x1){ x1[0]=999; }
-
-
不可变性
-
一旦一个字符串被创建后,它的值就不能被修改;
String s1="Hello"; s1="World"; //这里只是指向发生了变化,而不是改变了值
-
会改变内容的方法全部都有返回值。表明,改变内容会产生新的字符串,与不可变性一致
-
-
方法
- contains 当且仅当此字符串包含指定的 char 值序列时,返回 true。
- endsWith / startsWith 是否以参数为结尾/开头
- equals / equalsIgnoreCase 比较
- indexOf / lastIndexOf / charAt 从头或尾部查找第一次出现指定字符或者字符串的索引位置
- length() / isEmpty 长度/判断长度是否为空
- replace / repalceAll /replaceFirst 替换
- split 拆分
- subString 返回一个新字符串,它是此字符串的一个子字符串。
- trim 缩进字符串两边空格
- toUpperCase /toLowerCase 转换为大/小写
- valueOf 转换类型
-
常量池
- 为了能够重用这些不变的字符串,Java使用了字符串常量池;
- 凡是用=直接赋值的方式得到的字符串,都存储在常量池中;相同的值共用一个具体字符串;
- 使用new创建的字符串不适用常量池,每次都分配新的内存空间;
-
可变的字符串
- StringBuffer 可变线程安全
- StringBuilder 可变线程不安全(优先使用,比StringBuffer效率高)
- 常用方法
- append 从尾部加入
- insert 从中间插入
- delete / deleteCharAt
- indexOf /lastIndexOf
- setCharAt
- replace
- reverse 倒序
- subString
上一篇: 九章算法 | Google 面试题:最接近零的子数组和
下一篇: Day4 字符串