day15

1  String是java.lang.String,使用不需要导包

String是字符串类,是引用类型,底层是char数组,所以String的特性几乎和数组一致

1 字符串一旦创建,该字符串对象不能更改

 2 为了提高字符串的访问效率,java虚拟机使用了一种缓存技术,可以对字符串操作更加简单方便,更加高效(字符串常量池)

3 字符串会被保存在静态区中的常量池中,可以复用性增强
当我们用到一个重复的字符串的时候,会去常量池中进行检索,如果有该字符串,则直接指向,如果没有就创建
 创建一个字符串对象,直接指向常量池

string 是main方法中的局部变量, = 赋值只是更改了这个变量的值,并没有更改ab这个字符串对象

 String s1 = "abc"; 只会创建一个对象 , 就是abc 保存在常量池中
 String s3 = new String("abc");    创建了3个对象,堆内存两个,常量池1个
构造方法 : 创建String对象的几种方式
 1 直接创建
 2 普通构造
  3 字节数组   截取一部分
        String s4 = new String(bytes,1,3); 下标0开始, 第二个参数  起始下标(包含) , 第三个参数 是个数      
  4 字符数组     

常用方法
1 什么方法, 是成员还是静态
 2 方法名,参数,返回值是什么
 3 方法功能

 1 char charAt(int index ) : 获取字符串中指定下标的字符

 2 boolean startsWith(String prefix) : 判断该字符串是否以指定字符串开头
  endsWith : 是否以指定字符串结尾

3 boolean equals(Object obj) : 判断字符串是否相等
  boolean equalsIgnoreCase(String str) : 不区分大小写判断相等

4 byte[] getBytes() : 把字符串转换为字节数组

5 char[] toCharArray() : 把字符串转换为字符数组

 6 int indexOf(String str) : 获取指定字符串在该字符串中第一次出现的索引,找不到就返回-1
 int lastIndexOf(String str) : 同上,最后一次出现的索引,

 7 int length() : 返回字符串长度

8 String[] split(String regex) : 分割字符串,支持正则表达式

9 String replaceAll(String regex,String replacement) : 替换字符串中的内容为指定文字,支持正则表达式
 replace : 同上,不支持正则表达式

10 String substring(int beginIndex , int endIndex) : 截取字符串,包含开始 "不包含" 结束
 substring(int beginIndex) : 从指定下标开始(包含),到末尾

11 String toUpperCase() : 转换为大写
12 String toLowerCase() : 转换为小写
 13 String trim() : 去除两边空格

多个英文名字,以逗号隔开

使用String不推荐进行频繁的字符串拼接操作
 因为字符串一旦创建不可改变,只要拼接,就会创建新的字符串对象
 浪费空间,效率还低,就等于是使用定长数组频繁做添加操作一样


1 StringBuffer和StringBuilder是什么
 都在java.lang下, 使用不需要导包
 是一个可变的字符串缓冲区,底层也是数组,只不过该数组会进行自动扩容
 适合做字符串拼接操作
 2 原理 : 
预先在内存中创建一个空间,用来保存字符(字符数组)
如果预留空间不够了,会进行自动扩容,用来容纳更多的字符
 默认长度为16,扩大容量为(原长度+1)*2  :  16 -> 34 -> 70
 3 StringBuffer和StringBuilder的区别
 StringBuffer : 线程安全,在多线程环境下使用,没有问题
 StringBuilder : 非线程安全,在多线程环境下使用,可能出现问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值