String类

1 String类
java.lang.String是字符串类型
1 字符串一旦创建将不可再改变,但可以重新指向
2 提升字符串的访问效率,在程序中使用“缓存”技术,所以在java中所有用双引号括起来的字符串都会在“字符串常量池”中创建一份,字符串常量池在方法区中被存储
3 在程序执行过程中,如果用到某个字符串,那么程序会去常量池中搜索,如果没有就新建一个如果有的话就直接拿过来用

public demo
{
  public static void main(String[] args)
  {
      String s1=new String("hello");
      String s2=new String("hello");
  }
  //以上代码有三个对象,方法区一个,堆中两个
}

使用String的时候应该注意的问题,尽量不要做字符串频繁的拼接操作,因为这样会在字符串常量池中创建大量的字符串对象,给垃圾回收带来问题
2关于字符串常用方法
1 构造方法

public class Stringdemo
{
    public static void main(String[] args)
    {
         String s1="abc";
         String s2=new String("abc");
         byte[] bytes={97,98,99};
         String s3=new String(bytes);
         String s4=new String(bytes,1,2);
         char[] c1={'我','是','中','国','人'};
         String s5=new String(c1);
         String s6=new String(c1,2,2);
         
    }
}

常用方法

public class Demo
{
    public static void main(String[] args)
    {
      char c1="abcdef".charAt(2);//c
      System.out.println("hello java".endwith("java"));//true
      System.out.println("abc".equalsIgnoreCase("Abc"));//true
      byte[] bytes="abc".getBytes();//97,98,99
      System.out.println("abc".indexOf("a"));//0
      System.out.println("abc".lastIndexOf("a"));//0
 System.out.println("abc".length());//3
 //String replaceAll(String s1,String s2);替换
    }
}

3 正则表达式
1 正则表达式是一门独立的学科
2 正则表达式是一种字符模型,专门做字符串格式匹配
3 正则表达式是通用的

例如 "^a(2)$“表示"aa”
4 StringBuffer和StringBuilder
java.lang.StringBuffer;
java.lang.StringBuilder;
1 这两个是一个字符串缓冲区
2 工作原理: 预先在内存中调用一块空间,以容纳字符序列,如果预留空间不够,则进行自动扩容,以容纳更多字符序列
3 StringBuffer底层是一个char数组,但是该char数组是可变的,并且可以自动扩容
4 两者的默认初始化容量是16;
5预测存储容量,尽量减少底层数组的拷贝
6 两者区别
StringBuffer是线程安全的
StringBuilder不是线程安全的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值