Java中的StringBufferStringBuilder和包装器类型

Posted Evan789

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的StringBufferStringBuilder和包装器类型相关的知识,希望对你有一定的参考价值。

1.如何使用StringBuffer类?

答:1).StringBuffer类用于表示可以修改的字符串,称为字符串缓冲对象;

   2).使用运算符的字符串将自动创建字符串缓冲对象;

     例:str1 + str2的操作,实际上把str1与str2都创建成StringBuffer类对象;

2.StringBuffer类的构造方法有哪些常用的重载方式?

答:StringBuffer()        创建一个空的StringBuffer对象,默认保留16个字符的缓冲空间

   StringBuffer(String str)  根据字符串str的内容创建StringBuffer对象,并默认保留16个字符的缓冲空间

   StringBuffer(int capacity)   创建一个空的StringBuffer对象,缓冲空间大小由capacity指定

3.StringBuffer类有哪些常用方法?

答:*StringBuffer insert(int index, x x);

    将x插入到索引为index的位置,x可以为任何类型的数据

    *Int length() ;

    获得当前StringBuffer对象的长度

    *Void setCharAt(int index,char ch);

    使用ch 指定的新值替换index指定的位置上的字符

    *String toString();

    转换为字符串形式

    *StringBuffer reverse();

    将当前StringBuffer对象中的字符序列倒置

    *StringBuffer delete(int start, int end);

    删除当前对象中从start位置开始直到end指定的索引位置的字符序列

     *StringBuffer deleteCharAt(int index);

    将删除index指定的索引处的字符

     *StringBuffer replace(int start, int end, String str);

    此方法使用一组字符替换另一组字符。将用替换字符串从start指定的位置开始替换,直到end指定的位置结束

4.String类和StringBuffer类有什么区别?

   答:1).在Java中一旦创建了字符串就不能直接更改,这就是字符String的不变性;

    2)而StringBuffer类正是针对此问题而提供的字符可变序列;

    3).StringBuffer与String是同等的类,唯一区别是可以进行更改;

5.什么是StringBuilder?

   答:1).JDK 1.5以后,提供了一个新的字符缓冲区:StringBuilder;

    2).提供和StringBuffer相似的API;

    3).非线程安全

6.StringBuffer和StringBuilder有什么区别?

    答:

 

StringBuffer

StringBuilder

线程是否安全

安全

不安全

效率

相对低

相对高

      

     

 

         

 7.如何使用包装器类(Wrapper类)?

     答:1).使用基本数据类型声明的变量,如:

                 int num = 10;

           这里的num只是一个变量,而不是对象;

         2).在某些必须操作对象的场合,这样的变量就不能使用了;

         3).Java提供一系列包装类,以便将基本数据类型当作对象进行操作;

         4).在java.lang包中,对于每个基本数据类型都有一个相应的包装类。

    

 

 

 8.每个基本数据类型对应的包装器类是什么?

  答:

基本数据类型

包装类

boolean(布尔型)

Boolean

byte(字节型)

Byte

char(字符型)

Character

short(短整型)

Short

int(整形)

Integer

long(长整型)

Long

Float(浮点型)

Float

double(双精度浮点型)

Double

 

9.如何使用valueOf方法?举例说明

  答:每个包装类都有一个静态的valueOf方法,用于将字符串转换成相应包装类的对象。

    public class LangDemo{

     public static void main(String[] args){

String str = “120”;

//如果转换失败,将会引发NumberFormatException异常

Byte objByte = Byte.valueOf(str);

Short objShort = Short.valueOf(str);

Integer objInt = Integer.valueOf(str);

Long objLong = Long.valueOf(str);

 

System.out.println(objByte);

System.out.println(objShort);

System.out.println(objInt);

System.out.println(objLong);

 

}

}

 10.什么是包装类的parseXxx方法?有哪些注意事项?举例说明

     答:除了Boolean类和Character类以外,其它的包装类都有静态的parseXxx方法(Xxx指代具体的数据类型),用于将字符串转换成相对应的基本数据类型值。

       Public class ParseTest{

         public static void main(String[] args){

           String str = “116”;

           //分别调用各个包装器类的paseXxx方法对字符串进行转换,如果转换失败,将报异常

          int i = Integer.paeseInt(str);

          short s = Short.parseShort(str);

          byte b = Byte.parseShort(str);

          long l = Long.parseLong(str);

          float f = Float.parseFloat(str);

          double d = Double.parseDouble(str);

 

          System.out.println(i);

          System.out.println(s);

System.out.println(b);

System.out.println(l);

System.out.println(f);

System.out.println(d);

}

}

 

 

 

 

 

 

 

11.Character类中有哪些常用方法?举例说明

  答:

  

方法原型

说明

boolean isLetter(char ch)

判断字符ch是否为英文字母

boolean isDigit(char ch)

判断字符ch是否为0---9之间的数字

boolean isUpperCase(char ch)

判断字符ch是否为大写形式

Boolean isLowerCase(char ch)

判断字符ch是否为小写形式

boolean isWhitespace(char ch)

判断字符ch是否为空格或换行符

注意:以上方法都是静态方法,可以直接通过类名调用,返回值均为boolean类型,如果返回true,否则返回false。

例:

 Public class CharacterDemo{

  Public static void main(String[] args){

char[] charArray = {‘*’, ‘7’, ‘b’, ‘’, ‘A’};

for(int I = 0;i < charArray.length;i++){

 if(Character.isDigit(charArray[i])){

System.out.println(charArray[i]) + “是一个数字。”);

}

 if(Character.isLetter(charArray[i])){

System.out.println(charArray[i]) + “是一个字母。”);

}

if(Character.isWhitespace(charArray[i])){

System.out.println(charArray[i]) + “是一个空格。”);

}

if(Character.isLowerCase(charArray[i])){

System.out.println(charArray[i]) + “是小写形式。”);

}

if(Character.isUpperCase(charArray[i])){

System.out.println(charArray[i]) + “是大写形式。”);

}

 

}

}

}

12.什么是包装类的拆装箱?举例说明

答:JDK5.0以后提供了自动封解箱的操作

Public static void main(String[] args){

      int x = 1;

      Integer y = x;

      y++;  //装箱

      System.out.println(“y=” +y+  “z=” +z);

}

以上是关于Java中的StringBufferStringBuilder和包装器类型的主要内容,如果未能解决你的问题,请参考以下文章

mySQL在java中的应用

Java中的ArrayList 重要方法补充

Java中的Math函数

使用java 8中的forEach(..)而不是java 5中的forEach循环的任何优势[重复]

Java中的数据类型

java - 为啥在java中的poll方法之后PriorityQueue中的值会发生变化? [复制]