1.类介绍 
    ①线程安全的可变字符串序列,一个类似于String的字符串缓冲区,但是不能修改(就是不能通过加号+连接,String就可以)
    ②StringBuffer和String类的区别
        String是一个可改变的字符序列
        StringBuffer是一个可变的字符序列
2.构造方法
    StringBuffer()  构造一个没有字符的字符串缓冲区,初始容量为16个字符
    StringBuffer(int capacity)  构造一个没有字符的字符串缓冲区和指定初始容量
    StringBuffer(CharSequence seq)  构造一个字符串缓冲区,其中包含与指定的 CharSequence相同的字符。
    StringBuffer(String str)    构造一个初始化为指定字符串内容的字符串缓冲区。 
 
	notes:
从jdk5开始,为该类补充了一个单个线程使用的等价类,即StringBuilder类,通常优先使用StringBuilder类,因为他支持所有相同操作,但是由于它不执行同步,所有速度更快
3.增删,替换翻转,截取() StringBuffer sb = new StringBuffer("abcd");
①添加
sb.append("str12"); //在末尾添加一个字符串
sb.insert(3,"hhh"); //在指定位置添加指定字符串
②删除
sb.deleteCharAt(3); //删除指定1位置的字符 并返回本身
sb.delete(1,3); //左闭右开
③清空缓冲区
sb.delete(0,sb.length()); ④替换
sb.replace(0,3,"bai") // 包含头不包含尾
⑤翻转
sb.reverse();
⑥截取
sb.substring(int start) //从指定位置截取到末尾
sb.substring(int start,int end) //从指定位置开始到结束位置,包括开始位置,不包括结束位置
// 截取 返回值不再是StringBuffer而是String 4.StringBuffer --> String
String --》 StringBuffer
a.通过构造方法
StringBuffer stringBuffer = new StringBuffer("woai");
System.out.println(stringBuffer); // 通过构造方法完成转换成String
b.通过append()方法
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("woai");
System.out.println(stringBuffer); // 通过append()方法完成转换成String StringBuffer --》 String
StringBuffer sb = new StringBuffer("woai1");
a.通过构造方法
String s = new String(sb); // 通过构造方法
System.out.println(s);
b.通过toString()方法
String string = sb.toString(); //通过toString()方法
System.out.println("string = " + string);
c.通过subString(0,length);
String substring = sb.substring(0, sb.length());
System.out.println(substring); 5.数组 --> 字符串
举例:
int [] arr = {1,2,3,};
输出结果:
"[1,2,3]"
用StringBuff的功能实现:
int[] arr = {1, 2, 3};
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
stringBuffer.append(arr[i]).append("]"); // 使用这样的添加方式会减少垃圾的存在
}else {
stringBuffer.append(arr[i]).append(",");
}
}
System.out.println(stringBuffer); 6.字符串翻转
通过StringBuffer进行翻转 7.StringBuffer和StringBuilder区别
StringBuffer是jdk1.0版本的,是线程安全的,效率低的 (对于用户访问量大的bat 保证其稳定性,对于金融要求,保证其稳定,其他都不存在)
StringBuilder是jdk1.5版本的,是线程不安全的,效率高的 String和StringBuffer,StringBuilder的区别
String是一个不可变的字符序列
StringBuffer,StringBuilder是可变的字符序列 8.String和StringBuffer作为参数传递
基本数据类型的值传递,不改变其值
引用数据类型的值传递,改变其值 // 因为传递的是内存地址, String s = "heihei";
System.out.println(s);
change(s);
System.out.println(s); // heihei
    System.out.println("------------------");
    StringBuffer sb = new StringBuffer();
sb.append("hhhhhh");
change(sb);
System.out.println("sb = " + sb); // heiheihhhhhh
9.数组-冒泡,选择,二分排序
(1)冒泡
// 数据元素:{24,69,80,57,13}
相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处
(2)选择
(3)二分排序
10.Arrays类
11.Interger类
12.String --> int
13.Interger面试题

Java学习之StringBuffer的更多相关文章

  1. java学习笔记 --- StringBuffer类

    1.定义:字符串缓冲区,即它是一个容器,容器中可以装很多字符.并且能够对其中的字符进行各种操作. StringBuffer的特点: 1.是一个字符串缓冲区,其实就是一个容器. 2.长度是可变,任意类型 ...

  2. Java学习|String,StringBuffer,StringBuilder?

    1 String   (1) String的创建机理 由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池.其运行机制是:创建一个字 ...

  3. Java学习——String,StringBuffer和StringBuilder

    Java学习——String,StringBuffer和StringBuilder 摘要:本文主要介绍了String字符串在内存中的存储情况,以及StringBuffer和StringBuilder的 ...

  4. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  5. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  6. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  7. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  8. Java 学习文章汇总

    目前JAVA可以说是产业界和学术界最热门的语言,许多人都很急切想把JAVA学好. 但学习是需要步骤的,除非像电影中演的那样,能够把需要的专业技巧下载到脑海:主角只花了几秒下载资料,就马上具备飞行员的技 ...

  9. Java学习路线图分析

     Java学习路线分析图 第一阶段 技术名称 技术内容 J2SE(java基础部分) java开发前奏 计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量的设置, ...

随机推荐

  1. easyui validatebox textbox 使用例子

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebFormTextbox ...

  2. 【转】软件质量之道:SourceMonitor

    转:https://blog.csdn.net/feng_ma_niu/article/details/40594799 SourceMonitor是一个源代码衡量工具,由http://www.cam ...

  3. DQN(Deep Reiforcement Learning) 发展历程(四)

    目录 不基于模型的控制 选取动作的方法 在策略上的学习(on-policy) 不在策略上的学习(off-policy) 参考 DQN发展历程(一) DQN发展历程(二) DQN发展历程(三) DQN发 ...

  4. php中addslashes(),htmlspecialchars()

    参考转自http://czf2008700.blog.163.com/blog/static/2397283200937103250194/ addslashes -- 使用反斜线引用字符串 stri ...

  5. Android应用安全之脆弱的加密

    程序员希望通过加密来提升程序的安全性性,但却缺乏专业的密码学背景知识,使得应用对数据的保护非常薄弱.本文将介绍可能出现在Android应用中的一些脆弱的加密方式,以及对应的攻击方法. 造成脆弱加密的主 ...

  6. go语言之行--golang核武器goroutine调度原理、channel详解

    一.goroutine简介 goroutine是go语言中最为NB的设计,也是其魅力所在,goroutine的本质是协程,是实现并行计算的核心.goroutine使用方式非常的简单,只需使用go关键字 ...

  7. 20155321 《网络攻防》 Exp3 免杀原理与实践

    20155321 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 根据实验指导书,杀软有两个方法可以检测出恶意代码.第一种是基于特征码,即先对流行代码特 ...

  8. EZ 2017 12 30 2018noip第二次膜你赛

    去年的比赛了,然而今天才改好. 总体难度适中,有大佬AK. 主要是自己SB第二题没想出来,然后又是可怜的100来分. T1 一道二分+数学的题目. 我们可以二分叫的次数,然后用公式(等差数列,公差都是 ...

  9. python 23 种 设计模式

    频率 所属类型 模式名称 模式 简单定义 5 创建型 Singleton 单件 保证一个类只有一个实例,并提供一个访问它的全局访问点. 4 创建型 Abstract Factory 抽象工厂 提供一个 ...

  10. [LOJ#2878]. 「JOISC 2014 Day2」邮戳拉力赛[括号序列dp]

    题意 题目链接 分析 如果走到了下行车站就一定会在前面的某个车站走回上行车站,可以看成是一对括号. 我们要求的就是 类似 代价最小的括号序列匹配问题,定义 f(i,j) 表示到 i 有 j 个左括号没 ...