Java学习笔记--String StringBuffer StringBuilder
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的更多相关文章
- Java学习之String StringBuffer StringBuilder区别
1.String:对象长度是不可变的,是线程安全. 2.StringBuffer:对象长度是可变的,是线程安全. 3.StringBuilder:对象长度是可变,不是线程安全.
- 【Java基础】String StringBuffer StringBuilder
String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...
- 浅谈 Java 字符串(String, StringBuffer, StringBuilder)
我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...
- 重温java中的String,StringBuffer,StringBuilder类
不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...
- Android/Java 中的 String, StringBuffer, StringBuilder的区别和使用
Android 中的 String, StringBuffer 和 StringBuilder 是移动手机开发中经常使用到的字符串类.做为基础知识是必须要理解的,这里做一些总结. A.区别 可以从以下 ...
- 在JAVA中,String,Stringbuffer,StringBuilder 的区别
首先是,String,StringBuffer的区别 两者的主要却别有两方面,第一是线程安全方面,第二是效率方面 线程安全方面: String 不是线程安全的,这意味着在不同线程共享一个String ...
- Java学习笔记——String与StringBuffer
String与StringBuffer String.substring(start,end); 范围为[start,end) StringBuffer.delete(start,end) 范围也是为 ...
- Java基础知识 String StringBuffer StringBuilder三者的区别(面试题)
相同点:String.StringBuffer.StringBuilder最终底层存储与操作的都是char数组,StringBuffer和StringBuilder都继承了AbstractString ...
- java 基础 5 String StringBuffer StringBuilder
String是不可变的,原因 1是可以缓存hash值,因为String的hash值经常被使用,例如String用作HashMap等.不可变特性 使得hash值不变,因此只需要进行一次计算: 2Str ...
随机推荐
- ural 1333 Genie Bomber 2
#include <cstdio> #include <cstring> #include <algorithm> #define maxn 200 using n ...
- c++四则运算代码
//Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--& ...
- 原生js实现轮播
1,效果图 https://ga20.github.io/slider/ 2,原理图 分三步: 将视口元素设置overflow:hidden 将其图片子元素设置float:left 让橙色的框(包裹) ...
- jquery中ajax的用法
Jquery中队Ajax操作进行了封装,可分为3层:1.最底层$.ajax(),2.第二层load().$.get().$.post()方法,3.第三层$.getScript()和$.getJSON( ...
- (转)20 个大大节省你时间的 HTML5 开发工具
Rendera 如果你希望有个环境可以测试.浏览和体验各种不同的 CSS/HTML 和 JavaScript 代码,Rendera 为你提供了实时的运行结果.类似 RunJS. Patternizer ...
- JS~模拟表单在新窗口打开,避免广告拦截
说起广告拦截,这应该是浏览器的一个特性,它会将window.open产生的窗口默认为一个广告,将它进行拦截,但有时,这不是我们所希望的,有时,我们就是需要它在客户端的浏览器上弹出一个新窗口,以展示数据 ...
- muduo源代码分析--我对muduo的理解
分为几个模块 EventLoop.TcpServer.Acceptor.TcpConnection.Channel等 对于EventLoop来说: 他仅仅关注里面的主驱动力,EventLoop中仅仅关 ...
- Spring注解的使用和区别:@Component、@Service、@Repository、@Controller
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository.@Service 和 @Controller.在目前的 Spring ...
- SURF特征
了解了SIFT特征后,来学习SURF特征. 虽说是SIFT的一个变种,可是跟SIFT还是有差别的 差别有例如以下: 1.尺度空间的构建(近似)不同. 2.同意尺度空间多层图像同一时候被处理 3.特征点 ...
- 【从零学习openCV】IOS7下的人脸检測
前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app,总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...