StringBuffer笔记】的更多相关文章

String对象是字符串常量(创建之后不可更改),StringBuilder和StringBuffer对象是字符串变量(可更改),三者主要区别在于执行速度和线程安全. 执行速度 执行速度:StringBuilder > StringBuffer > String 原因: String对象的更改会不断创建和回收String对象,而StringBuilder.StringBuffer不会. 例如: String str = “123"; System.out.println(str);…
简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM 的 GC 就会开始工作,那速度是一定会相当慢的.这里尝试举个不是很恰当的例子: String S1 = “abc”;…
一.引言 当对字符串进行修改的时候,需要使用StringBuffer类. 和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未用对象. 二.StringBuffer 方法 以下是StringBuffer类支持的主要方法: 序号 方法描述 1 public StringBuffer append(String s)将指定的字符串追加到此字符序列. 2 public StringBuffer reverse() 将此字符序列用其反转…
数据结构(逻辑结构,物理结构,特点) 一.数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关.逻辑结构包括: 集合 数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系: 2.线性结构 数据结构中的元素存在一对一的相互关系: 3.树形结构 数据结构中的元素存在一对多的相互关系: 4.图形结构 数据结构中的元素存在多对多的相互关系. 二.数据的物理结构:指数据的逻辑结构在计算机存储空间的存放形式. …
String 1.toString:显示对象内容时系统自动调用的方法. public class TOSTRING { public String toString(){ return "this is toString method"; } } TOSTRING t = new TOSTRING(); System.out.println(t); 2.Math Math.函数 3.String 1)char charAt(int n)  //获得字符串索引为1的字符 String a…
String类 String类是一个特殊的类,叫做只读类,一旦创建了对象,便不可被改变,同样"abc"既为一个常量,也为一个对象,也是不可以改变的 String s1 = "abc"; 此语句只包含一个对象,即为"abc" String s2 = new String("abc"); 此语句包含两个对象,"abc"为一个对象,new的String为一个对象 所以s1与s2的地址值是不同的 String类常见…
StringBuffer是什么? StringBuffer是使用缓冲区的,本身也是操作字符串的,它是一个具体的操作类.与String类不同的是,它其中的内容是可以改变的.它不能像String那样采用直接赋值的方式进行对象的实例化,必须通过构造方法.所以在需要频繁修改字符串内容时,都要用StringBuffer来完成. 初始化StringBuffer对象 例如:StringBuffer str=new StringBuffer();  这样就初始化成功了. StringBuffer连接字符  St…
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]…
1.定义:字符串缓冲区,即它是一个容器,容器中可以装很多字符.并且能够对其中的字符进行各种操作. StringBuffer的特点: 1.是一个字符串缓冲区,其实就是一个容器. 2.长度是可变,任意类型都行.注意:是将任意数据都转成字符串进行存储. 3.容器对象提供很多对容器中数据的操作功能,比如:添加,删除,查找,修改. 4.所有的数据最终变成一个字符串. 2.String的方法 StringBuffer的构造方法: public StringBuffer():无参构造方法 public Str…
1.String:不可改变的Unicode字符序列. 池化思想,把需要共享的数据放在池中,用一个存储区域来存放一些公用资源以减少存储空间的开销. 在String类中,以字面值创建时,回到java方法空间的串池中去查找,如果没有则会在串池里创建一个字符串对象,并返回其地址赋给对象变量,如果有就返回串池中字符串的地址,并把这个地址赋给对象变量.如果是new,则会在堆空间中创建String类对象,不会有上述的过程. String s1="abc";//新创建,字符串常量池中没有,则会在池中创…
String Stringbuffer  StringBuilder的区别: 1.string是字符串常量,且长度是不可改变的,Stringbuffer.stringBuilder是字符串变量 2.Stringbuffer是线程安全的,StringBuilder是非线程安全,主要用在全局变量中. 3.String是改变赋值的地址,而不是改变String中的值: 如:String a = "a";//假设它的地址是001:值a是放在常量池中的 String a = "b&quo…
1.获取指定字符串中大小写和数字的个数: package demo; public class StringTest { public static void main(String[] args) { getCount("IamHandsome666"); } public static void getCount(String str) { int upper = 0; int lower = 0; int digit = 0; for (int i = 0; i < str…
String与StringBuffer String.substring(start,end); 范围为[start,end) StringBuffer.delete(start,end) 范围也是为[start,end) String常用方法 spilt 切割,返回一个String数组 charAt 取得String中的一个字符,返回该字符 toCharArray 将String转换为char数组 equals 比较 equlalsIgnoreCase 忽略大小写的比较 indexOf 从左往…
/* * String类的特点: * 所有的""都是String的对象 * 字符串一旦创建就是常量,不能改变 */ public class StringDemo { public static void main(String[] args) { //发现创建对象不需要new String str = "abcd"; System.out.println(str); //输出:abcd而不是内存地址,因为String类重写了toString方法 str = &qu…
一.除了使用String类存储字符串之外,还可以使用StringBuffer类存储字符串.而且它是比String类更高效的存储字符串的一种引用数据类型. 优点: 对字符串进行连接操作时,使用StringBuffer类可以大大提高程序的执行效率. 1.如何使用StringBuffer类 StringBuffer类位于java.util包中,是String类的增强类.声明StringBuffer对象并初始化的方法如下: StringBuffer sb = new StringBuffer(“青春无悔…
一.String String又称不可变字符序列. 我们看JDK源码中用于字符存储的数组有final修饰,final修饰变量就代表变量不能改变. 我们可以看API文档中对String的描述. String 代表字符序列.在java程序中所有的字符串字面量,如“abc”实现实例都属于这个类. String是不可改变的:它的values不能在创建之后改变.String buffers是支持可变的字符串.因为String对象是 不可变的它们能共享. 1.String实例化方法 public class…
String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符串序列是不可改变的,直至这个对象被销毁.   StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append().insert().reverse().setCharAt().setLength()等方法可以改变这个字符串对象的字符序列.一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()…
--< java.lang >-- StringBuffer字符串缓冲区: 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符. 特点: 1:可以对字符串内容进行修改. 2:是一个容器. 3:是可变长度的. 4:缓冲区中可以存储任意类型的数据. 5:最终需要变成字符串. 容器通常具备一些固定的方法: 1,添加. StringBuffer append(data):在缓冲区中追加数据.追加到尾部. StringBuffer insert(index,data):在指定位置插入数据. 2…
String类被final修饰,创建的对象为不可变对象,属于字符串常量. 而StringBuffer与StringBuilder创建的属于字符串常量. StringBuffer的方法大多用了Synchronized关键字修饰添加了同步锁.而StringBuilder没有. 所以StringBuffer是线程安全的而StringBuilder是线程不安全的. 由于String的对象属于不可变对象,所以在一些情况下对其操作会产生许多无用的中间对象,如拼接截取和替换, 如果频繁地操作会对性能有所影响.…
public class StringBufferDemo01{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象 buf.append("Hello ") ; // 向StringBuffer中添加内容 buf.append("World").append("!!!") ; // 可以连续调用ap…
一.相关介绍 1.StringBuffer介绍 StringBuffer对象是字符串缓冲区对象,用于存放数据的容器 2.StringBuffer特点 StringBuffer(字符串缓冲区对象)的长度是可变的: StringBuffer(字符串缓冲区对象)可以存储不同类型的数据,但都会将它们转换成字符串: 3.StringBuffer与String的区别 String对象的值不可以修改:而StringBuffer对象的值可以修改: 在对字符串对象进行增.删.改时,StringBuffer的性能比…
AbstractStringBuilder abstract class AbstractStringBuilder implements Appendable, CharSequence{ ... } 1. inflate方法 inflate()方法可以将当前的Latin1编码的字符串膨胀到16位,即UTF16编码(Latin1编码为8位) /** * If the coder is "isLatin1", this inflates the internal 8-bit stora…
/** * 异常:在程序中导致程序中断运行的一些指令 * 1.受检异常:编译期 * 2.非受检异常:运行期 * 异常处理过程分析: * 1.一旦产生异常,系统会自动产生一个异常类的实例化对象 * 2.此时如果存在对应try语句,则执行,否则程序将退出,并由系统报告错误 * */ public class Main { public static void main(String[] args) { /* try{ //有可能发生异常的代码段 }catch(异常类型对象){ //异常的处理操作 }…
---恢复内容开始--- 1数组.有序的同类型的集合. 2.string :字符串类型:其实就是一个字符数组.添加了private final,所以string是一个不可以变的字符串. String.charAt(index):或者字符数组的元素 equals():比较是每个字符是否相等.即比较的是内容. 字符串常用方法和源码: 3.stringbuilder 可扩容的字符串.也就是自动实现了字符数组的扩大.一般是两倍. 4,arraylist.数组列表,封装了数组. 5.多维数组: 虽然数组定…
关于线程和线程不安全: 概述 编辑 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. 或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题. 线程安全问题都是由全局变量及静态变量引起的. 若每个线程中对全局变量.静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的…
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条线程访问,一条线程在执行一个循环的过程中被中断,下一个线程则出现错误 因此,线程任务中可能引起错误的地方应当被一次执行完毕 同步代码块 用同步代码块改写上面的代码 package testpack; public class Test1 { public static void main(Strin…
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多态 第七章 接口与多态 第八章 异常处理 第九章 Collection与Map 第十章 输入/输出 第十一章 线程与并行API 第十二章 Lambda 第十三章 时间与日期 第十四章 NIO与NIO2 第十五章 通用API 第十六章 整合数据库 第十七章 反射与类加载器 第十八章 自定义类型.枚举 补充:Ja…
一◐ java概述                                                                                        1.1 Java的不同版本:J2SE.J2EE.J2ME的区别                                                  1998年12月,SUN公司发布了Java 1.2,开始使用“Java 2” 这一名称,目前我们已经很少使用1.2之前的版本,所以通常所说的Ja…
搭建Java开发环境使用开发工具开发Myeclipse基础核心:JAVASEEEME面向对象 API JVM.JAVAEE是指java enterprise edition,java企业版,多用于企业级开发,包括web开发等等很多组建JAVASE是指java standard edition,Java标准版,就是一般Java程序的开发就可以,可以看作是JAVAEE的子集 JVM(java virtual machine)源代码myprogram.Java--(编译器)二进制字节码myprogra…
今天闲来无事,整理了下平时记录在印象笔记里的java开发知识点,整理到String,StringBuffer以及StringBuilder的区别时突然又产生了新的疑惑,这些区别是怎么产生的?温故为何能知新,越是懂得多,越是能发现问题. [场景1] String对象的创建 String类对象有两种创建方式: 1. String s1=new String("Hello world"); new 是java类实例化对象的通用方法,这不足为奇,但是它使用了"Hello world&…