博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
StringBuffer类&包装类
阅读量:5332 次
发布时间:2019-06-15

本文共 3481 字,大约阅读时间需要 11 分钟。

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 位置插入 obj20 // 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 }

 

转载于:https://www.cnblogs.com/ywzbky/p/10638653.html

你可能感兴趣的文章
对闭包的理解
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
windows编程ASCII问题
查看>>
.net webService代理类
查看>>
Code Snippet
查看>>
Node.js Express项目搭建
查看>>
zoj 1232 Adventure of Super Mario
查看>>
1201 网页基础--JavaScript(DOM)
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
oracle job
查看>>
Redis常用命令
查看>>
XML学习笔记(二)-- DTD格式规范
查看>>
IOS开发学习笔记026-UITableView的使用
查看>>
[转载]电脑小绝技
查看>>
windos系统定时执行批处理文件(bat文件)
查看>>
thinkphp如何实现伪静态
查看>>
BZOJ 2243: [SDOI2011]染色( 树链剖分 )
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
c++中的string常用函数用法总结!
查看>>