zoukankan      html  css  js  c++  java
  • 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

       

  • 相关阅读:
    Mac OS X上安装 Ruby运行环境
    MAC 命令行工具(Command Line Tools)安装
    如何快速正确的安装 Ruby, Rails 运行环境
    安裝 Rails 開發環境
    用模块化编程
    阅读技术书籍
    NHibernate构建一个ASP.NET MVC应用程序
    SQL注入
    Redis
    Code digest
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/4960455.html
Copyright © 2011-2022 走看看