String字符串
我们创建变量的时候又两种方法:
第一种:常量式赋值创建,这样创建的变量将会常量化,放在栈内存,比如:
Integer a = 10;
String str = “abc”;
第二种:
new对象进行创建,这种变量不会被常量化,放在堆内存
Integer c=new Integer(10);
String d=new String(“abc”);
栈内存空间较小,但是读取的速度快
堆内存空间较大,但是读取的速度慢
我们用new方法调用类的构造函数创建对象时,java会以为对象很大
而我们创建一个值已经确定的常量的时候,因为确保值不会变动,那么就可以放在栈内存方便调用;
字符串的常用方法 :
| 方法名称 | 参数列表 | 返回值 |
|---|---|---|
| subString | 1、int start/2、(int start,int end) | 第一种截取从start位置到最后的字符串,包括start、第二种截取从start到end的左闭右开区间字符串 |
| lengh | 无 | 返回字符串长度 |
| charAt | int index | 返回字符串内部字符数组在index位置的字符 |
| compareTo | String anotherString | 按照字典序来将两个字符串一个个字符进行比较,如果相等返回0,否则返回第一个不相等的字符的ASCII码之差 |
| trim | 无 | 去掉字符串前后的空格 |
| split | char a | 以a来分割字符串,返回一个字符串数组 |
| join | (char a,String[] arr) | 把一个数组中的所有元素进行组合拼接,字符a作为分隔符 |
| equals | ||
| equalsIgnoreCase | 不区分大小写的比较,返回Boolean | |
| toUpperCase | 全部转换为大写,对数字、汉字等不影响 | |
| toLowerCase | 小写 | |
| contains | CharSequence s | Boolean值,表示字符串中是否包含传入串 |
| startsWith | CharSequence s | Boolean值,表示字符串是否以传入串开头 |
| endsWith | CharSequence s | Boolean值,表示字符串是否以传入串结尾 |
| getBytes | 将字符串转化为Byte[]数组 | |
| replace | (CharSequence target, CharSequence replacement) | 将字符串中所有targer子串转化为replacement串,返回值是String类型 |
| toCharArray | 无 | 将字符串转化为字符数组返回 |
| String.valueOf | 静态方法,参数任意 | 可以将传入的参数转化为字符串 |
synchrnized关键字
表示线程安全,StringBuffer的appen方法用其修饰
但是StringBuilder类的append没有它修饰,表示线程不安全
synchronize关键字修饰的方法可以保证:在多用户同时访问数据的时候数据不会错,而线程不安全的方法可能会出现数据错误
StringBuffer
因为String拼接会产生大量的垃圾自妇产,因此我们需要更为高效的操作字符串的方法
StringBuffer是线程安全的,适合多线程大量对字符串进行修改的情况
常用方法:
| 方法名称 | 参数列表 | 返回值 |
|---|---|---|
| append | String str |
StringBuilder
JDK1.4之后提供了StringBuilder,和StringBuffer功能相同
但是线程不安全,适合单线程多次对字符串进行修改的情况

被折叠的 条评论
为什么被折叠?



