String StringBuffer StringBuilder

String http://docs.oracle.com/javase/7/docs/api/

中文: http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html

        String str0 = "最正常的创建方法";
System.out.println(str0); char[] c1 = new char[3];
c1[0] = 'c';
c1[1] = 'b';
c1[2] = 'a';
String str1 =new String("string1");
String str2 = new String(c1);
System.out.println(str1+ " "+ str2); //输出string1 cba /* String.valueOf()它可以将JAVA基本类型(int,double,boolean等)和对象(Object)转换成String型
* toString()是对象的方法,它可以将该对象转换成String型,转换算法根据类型实际需要而定,
* 基本上JAVA里面每个对象都会有一个toString方法。*/
//字符串转换
int i1 = 100;
String str3= Integer.toString(i1);
System.out.println("Integer.toString : "+str3);//输出Integer.toString : 100 //valueOf()进行数据转换
String str32 = String.valueOf(123456);
System.out.println("String.valueOf() : " +str32);//输出String.valueOf() : 123456 //字符抽取
//charAt
String str4 = "A long String!";
System.out.println("charAt(3) : "+str4.charAt(3));//输出charAt(3) : o
//getChars()
char buf [] = new char[6-2];
str4.getChars(2, 6, buf , 0);
System.out.print("getChars输出 :");
System.out.println(buf); //输出getChars输出 :long
//char[] toCharArray()
System.out.println(str4.toCharArray());//输出A long String!
//抽取子串
String str5 = str4.substring(2,8);
System.out.println("subString(2,8)输出 : "+str5);//输出subString(2,8)输出 : long S

StringBuffer http://docs.oracle.com/javase/7/docs/api/

A thread-safe, mutable sequence of characters. A string buffer is like a String, but can be modified.

        /*
* StringBuffer()
* StringBuffer(int size)
* StringBuffer(String str)
* 接收一个String变元,指定StringBuffer对象的初始内容,并额外预留16个字符空间
* StringBuffer(CharSequence chars)
*/
StringBuffer sbf = new StringBuffer("Hello");
System.out.println("buffer = " +sbf);
System.out.println("length = " +sbf.length());
System.out.println("capacity = " +sbf.capacity()); System.out.println("----重新指定缓冲区大小----");
sbf.ensureCapacity(55);
System.out.println("buffer = " +sbf);
System.out.println("length = " +sbf.length());
System.out.println("capacity = " +sbf.capacity()); System.out.println("----设置缓冲区长度----");
sbf.setLength(30);
System.out.println("buffer = " +sbf);
System.out.println("length = " +sbf.length());
System.out.println("capacity = " +sbf.capacity());

输出结果:

buffer = Hello
length = 5
capacity = 21
----重新指定缓冲区大小----
buffer = Hello
length = 5
capacity = 55
----设置缓冲区长度----
buffer = Hello
length = 30
capacity = 55

StringBuilder http://docs.oracle.com/javase/7/docs/api/

除了一个重要的区别之外,StringBuffer等同于StringBuilder,区别是:它不是同步的,即意味着它不是线程安全的。

StringBuilder优势在于具有更快的性能,但是使用多线程时必须使用StringBuffer,而不能使用StringBuilder

Java学习笔记--String StringBuffer StringBuilder的更多相关文章

  1. Java学习之String StringBuffer StringBuilder区别

    1.String:对象长度是不可变的,是线程安全. 2.StringBuffer:对象长度是可变的,是线程安全. 3.StringBuilder:对象长度是可变,不是线程安全.

  2. 【Java基础】String StringBuffer StringBuilder

    String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...

  3. 浅谈 Java 字符串(String, StringBuffer, StringBuilder)

    我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...

  4. 重温java中的String,StringBuffer,StringBuilder类

    不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...

  5. Android/Java 中的 String, StringBuffer, StringBuilder的区别和使用

    Android 中的 String, StringBuffer 和 StringBuilder 是移动手机开发中经常使用到的字符串类.做为基础知识是必须要理解的,这里做一些总结. A.区别 可以从以下 ...

  6. 在JAVA中,String,Stringbuffer,StringBuilder 的区别

    首先是,String,StringBuffer的区别 两者的主要却别有两方面,第一是线程安全方面,第二是效率方面 线程安全方面: String  不是线程安全的,这意味着在不同线程共享一个String ...

  7. Java学习笔记——String与StringBuffer

    String与StringBuffer String.substring(start,end); 范围为[start,end) StringBuffer.delete(start,end) 范围也是为 ...

  8. Java基础知识 String StringBuffer StringBuilder三者的区别(面试题)

    相同点:String.StringBuffer.StringBuilder最终底层存储与操作的都是char数组,StringBuffer和StringBuilder都继承了AbstractString ...

  9. java 基础 5 String StringBuffer StringBuilder

    String是不可变的,原因 1是可以缓存hash值,因为String的hash值经常被使用,例如String用作HashMap等.不可变特性  使得hash值不变,因此只需要进行一次计算: 2Str ...

随机推荐

  1. 安卓各文件存储路径汇总(Android file path)

    写下来,省得以后不记得到处翻: Environment.getDataDirectory() = /data Environment.getDownloadCacheDirectory() = /ca ...

  2. CentOS 6.5 + Nginx 1.8.0 + PHP 5.6(with PHP-FPM) 负载均衡源码安装 之 (四)问题汇总

    关于外网无法访问虚拟机centos的问题 此一般由于centos默认防火墙配置,导致外部不允许访问80端口(或其他如9000端口).解决方法如下: 1.加入80端口的防火墙规则 /sbin/iptab ...

  3. Qt之QTableView显示富文本(使用了QAbstractTextDocumentLayout和QTextDocument)

    http://blog.csdn.net/liang19890820/article/details/50973099

  4. MFC动态创建按钮,并在按钮上实现位图的切换显示

    动态创建按钮,并在按钮中添加位图,通过单击按钮显示不同的位图,可设置为显示按钮按下和弹起两种状态.只要判断a值从而输入不同的响应代码. 1.在头文件中添加: CButton *pBtn; 2.在初始化 ...

  5. 为什么设计模式在C++社区没有Java社区流行?

    我们发现设计模式在Java社区很流行,但是在C++社区却没有那么被关注,甚至有点被排斥,究竟是什么原因造成这个差异的呢?    昨天和同事讨论这个问题,最后得出几点原因:     (1)C++内存需要 ...

  6. ChangeServiceConfig2 function

    ChangeServiceConfig2 function   Changes the optional configuration parameters of a service. Syntax C ...

  7. 转:Yii 常量的轻松管理

    问题 我经常在不同的地方使用模型中的常量(基本状态常量),当常量改变时我不得不在使用每处它的代码中修改. 获取常量 为了解决这个问题我使用了一个方法 getConstants(). public st ...

  8. mysql生成随机测试数据

    一个demo: CREATE TABLE dept_InnoDB(  deptno MEDIUMINT NOT NULL DEFAULT 0 ,  dname VARCHAR(20) NOT NULL ...

  9. 设计模式(七):Adapter 适配器模式 -- 结构型模式

    1. 概述: 接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题.程序提供者们修改他们的代码;系统库被修正;各种程序语言以及相关库的发展和进化.  例子1:iphone4,你即可以 ...

  10. cf298F:状压dp+剪枝

    div2的F题,只想到了一个复杂度略高的dp,T了几次,后来加了剪枝减掉一些无用的状态终于过了.. 题意: 一个n*m的矩阵 (n<=5,m<=20),对格子进行黑白染色,已经给出了每行每 ...