zoukankan      html  css  js  c++  java
  • StringBuffer类&包装类

    StringBuffer类:线程安全的可变字符序列。

    构造方法:

      StringBuffer()  初始容量为16个;

      StringBuffer(String str)  指定字符串的字符串缓冲区,初始容量为16+str的长度;

    常用方法:

      1.append(obj)表示添加。

      2.capacity()  容量

      3.delete(start end) 删除,从start 位置开始,不包括end位置。

      4.insert(offset  obj)向offset位置插入obj

      5.length()长度

      6.replace(int start ,int end,String str)替换。

      7.reverse() 反转。一般用于判断字符串是否为镜面对象, 例如:“abcba”

    代码演示:

     1 public static void main(String[] args) {
     2 //1 》创建对象
     3 StringBuffer sb=new StringBuffer();
     4 /*System.out.println(sb.capacity());
     5 System.out.println(sb.length());*/
     6 //2 》 append  添加
     7 // System.out.println("====");
     8 // 链式调用
     9 sb.append("abc").append("12345678901231");
    10 /*System.out.println(sb.capacity());
    11 System.out.println(sb.length());*/
    12 //2 》创建对象的方式:
    13 StringBuffer sb1=new StringBuffer("abc");
    14 /* System.out.println(sb1.capacity());
    15 System.out.println(sb1.length());*/
    16 //3 》常用方法:
    17 StringBuffer sb2=new StringBuffer("abcdef");
    18 // System.out.println(sb2.delete(0, 3));
    19 // insert(offset,obj)  向 offset 位置插入 obj
    20 // System.out.println(sb2.insert(1, " 我 "));
    21 // System.out.println(sb2.replace(0, 3, " 我们 "));
    22 System.out.println(sb2.reverse());
    23 }
    

    StringBuffer与String   StringBuilder的区别:

    如果是对字符串本身进行增删改操作,用StringBuffer,速度高于String 

    String 的值不可以改变,而StringBuffer的值可以改变,这也是StringBuffer的增删改速度必String快的原因,因为String的值不可改,所以每次增删改都要新创建一个字符串,而StringBuffer本身是一个数组,它可以改变,不用创建新的,所以必String快

    String类的equals方法是重写的,判断字符串值相同就是同一个字符串,StringBuffer没有重写。

    StringBuilder:  线程不安全的,但是速度快

    StringBuffer:    线程是安全的,但是速度慢

    关于StringBuffer和StringBuilder的速度区别,就好比人们挤地铁,StringBuffer只有一个门,门口有地铁的警务员,服务员,很安全,但是上车的速度有点慢,而StringBuilder就好比这个地铁有好多门,虽然速度快,但是会有点不安全。

    代码演示:

     1 public static void main(String[] args) {
     2 String s="";
     3 StringBuffer sb=new StringBuffer();
     4 long start = System.currentTimeMillis();
     5 /*for (int i = 0; i <5000; i++) {
     6 s+=i;
     7 }*/
     8 for (int i = 0; i <5000; i++) {
     9 sb.append(i);
    10 }
    11 long end = System.currentTimeMillis();
    12 // System.out.println(end-start);
    13 System.out.println(new StringBuffer("abc").equals(new StringBuffer("abc")));
    14 System.out.println(new String("abc").equals(new String("abc")));
    15 }

    StringBuffer和String类型的转换

    StringBuffer---》String:toString()方法;

    String----------》StringBuffer :   new StringBuffer(str);

    包装类“:

    java 是面向对象的语言,但并不是完全面向对象的语言,比如String  str=new String()   str可以调用String类下的方法,

    但是int i   这个i 却没有方法可以调用,所以提出了包装类的概念,包装类主要是针对基本数据类型的

    基本数据类型              包装类

    byte                             Byte

    short        Short

    char         Character

    int          Integer

    long         Long

    float        Float

    double         Double

    boolean       Boolean

    包装类的好处是:可以提供更多的功能。

    本来int  short  char  等等类型是没有方法可调用的,但是有了包装类以后,这些类型都可以调用方法了。

    Integer:

      构造方法:new Integer(int类型的数值);

           new Integer(str);将String 转化为Integer类型

    常用方法:

    parseInt(str)   将str字符串转化为数字

    toBinaryString(int i) /   toHexString(int i)  /   toOctalString(int i)  转化为二进制   十六进制   八进制

    装箱与拆箱:

    装箱:将int类型包装成Integer类

    拆箱:将Integer转化为int 类型

    Character包装类常用方法:

    isDigit(obj)  判断obj是否为数字

    isLetter(char ch  ) 判断是否为字符(包括汉字)

    代码演示:

     1 public class  包装类 {
     2 public static void main(String[] args) {
     3 int a=5;
     4 Integer a1=5;
     5 // 最大值与最小值
     6 /*System.out.println(Integer.MAX_VALUE);
     7 System.out.println(Integer.MIN_VALUE);
     8 System.out.println(new Integer("123"));*/
     9 // System.out.println(Integer.parseInt("456")==456);
    10 System.out.println(Integer.valueOf("789"));
    11 // 进制转换
    12 /*System.out.println(Integer.toBinaryString(5));
    13 System.out.println(Integer.toHexString(15));*/
    14 // String s3="123";
    15 // 拆箱与装箱
    16 Integer i=5;// 装箱
    17 new Integer(5);
    18 int b=i;// 拆箱
    19 }
    20 }
  • 相关阅读:
    生成操作 嵌入的资源
    用JavaScript操作CSS滤镜实现最近新闻旁边的“new”
    26个ASP.NET常用性能优化方法
    kafka集群搭建(windows环境下)
    AtCoder Beginner Contest 215 F Dist Max 2(二分、尺取)
    CodeForces 1487C Minimum Ties(建图、模拟)
    C#获取 URL参数
    编程给程序员带来哪些坏习惯
    【转载】IIS和服务器安全设置教程
    [转载]在IE8下动易SiteWeaver后台编辑器按钮没有反应的解决方案
  • 原文地址:https://www.cnblogs.com/ywzbky/p/10638653.html
Copyright © 2011-2022 走看看