• Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0


    课程概要

    String 字符串

    String字符串常用方法

    StringBuffer

    StringBuilder

    String字符串:

    1.实例化String对象

        直接赋值  String str="Hello";  推荐这种

        使用关键字new  String str1=new String("Hello"); 在内存中开辟2个空间

    如图:

    源代码 StringDemo01.java

    2.String内容的比较

    String str="Hello";
    String str1=new String("Hello");
    //System.out.println(str==str1); false
    System.out.println(str.equals(str1));
    //"=="比较的是内存地址 equals比较是内容

    详细源代码如下StringDemo02.java

    3.字符串内容不可改变

    String str="hello";
    String str1=str+"World";
    System.out.println(str1);

    感觉是组合了 改变了 但是通过图

    StringDemo03.java

    #String字符串常用方法 

    1.字符串的长度 :length()方法

    2.字符串转换成数组:toCharArray();

    3.从字符串中取出指定位置的字符charAt();

    4.字符串与byte数组的转换:getBytes()

    5.过滤字符串中存在的字符:indexOf() 有返回当前位置下标 无返回-1

    System.out.println(str.indexOf("@")); 

    6.去掉字符串的前后空格trim()

    System.out.println(str.trim());

    7.从字符串中取出子字符串
    8.大小写转换 toLowerCase() toUpperCase();
    9.判断字符串的开头结尾字符,endWith() startWith()
    10.替换String字符串中的一个字符replace()

    StringDemo04.java

    #StringBuffer

    1.认识StringBuffer
    缓冲区,本身也是操作字符串,但是与String不同,StringBuffer是可以更改的、
    即String是常量StringBuffer是个变量 StringBuffer是个操作类,所以必须通过实例化进行操作

    StringBuffer sb=new StringBuffer();
    sb.append("jikexueyuan");//append添加内容 Sql语句时前后注意空格
    System.out.println(sb.toString());

    StringBufferDemo01.java

    2.StringBuffer常用方法
    append()//追加
    insert()插入这个方法
    replace()
    indexOf

    StringBufferDemo02.java

    3.StringBuffer的应用

    String str="jikexueyuan";
    for (int i = 0; i < 100; i++) {
    str=str+i;

    }
    System.out.println(str);
    //开辟100个空间+str1个=101个

    }

    4.0 StringBuilder

    1.  在执行速度方面的比较:StringBuilder >  StringBuffer   
    2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。
    3. StringBuilder:线程非安全的
      StringBuffer:线程安全
    当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

    对于三者使用的总结:1.如果要操作少量的数据用 = String
           2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
           3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

       

  • 相关阅读:
    git常用命令
    vue+el-menu+vue-router实现动态导航条
    css实现文字内容超出显示省略号
    背景图片居中全屏自适应显示
    linux相关操作(虚拟环境、查看进程)(不定时更新)
    关于定义序列化器时,read_only和write_only有什么作用
    flask之请求与响应、闪现(阅后即焚)、请求扩展(before,after)、中间件、LOCAL对象、偏函数、
    flask之web网关、三件套、配置、路由(参数、转化器及自定义转化器)、cbv、模板语言、session
    flask中的endpoint、自定义转化器、与djnago中session区别、利用装饰器实现登录认证
    jinja2模板用法
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/4960455.html
Copyright © 2020-2023  润新知