String

String类被final修饰符修饰,所以不能将其进行继承,所有对它的改变都要重新创建一个新的地址

1.String的构造器

String()

String(byte 【】bytes)//把byte类型的用ASCII码构成一个新的数组

String(byte 【】bytes,int offest,int length)//从哪开始,指定长度

String(byte 【】bytes,Charset  charset)//指定用来解码的Charset

String (char 【】 value)//字符串的初始值

String(char 【】value ,int  offest ,int  count )//从哪开始,指定长度

2.String的方法

(1)String的判断功能

public boolean equals(Object  objiect){//先比较引用类型的内存地址,后比较值}

boolean  /contains(String str ){\\ 是否包含子字符串}

boolean  /startsWith(String str ){\\ 判断字符串是否以str开始}

boolean  /endsWith(String str ){\\ 判断字符串是否以str结束}

boolean  /equalsIgnoreCase(String str){\\忽略大小写的比较}

boolean  /is Empty(){\\判断字符串是否为空}

(2)String的取值功能

int  /length() {\\返回字符串的长度}

char   /charAt(int index){\\通过字符下标找到指定的字符}

int  /indexOf(int ch){\\寻找出此对象表示的字符,在字符序列中第一次出现的索引,没有时报-1}

int  /lastIndexOf(int ch){\\寻找出此对象表示的字符,在字符序列中最后一次出现的索引,没有时报-1}

int  /indexOf(int ch,int fromIndex){\\从指定位置寻找出此对象表示的字符,在字符序列中第一次出现的索引,没有时报-1}

String  /subString(int  Start){\\截取从start到结束的字符串}

String   /subString(int  Start,int end){\\截取从start到end的字符串}【包前不包后】

(3)String的转换

byte 【】  /get  Byte(){\\把字符串转换为byte类型的数组}

char 【】  /toCharArray(){\\把字符串转换为char型的数组}

static String    /valueOf(char【】ch){\\静态方法可以直接用对象来调用,把char【】转换为字符串}

String   /toUpperCase(){\\把小写转换成大写}

String   /LowerCase(){\\把大写转换成小写}

String   /concat(String st){\\拼接}

(3)String的其他功能

替换功能:String  /replace(char  old,char  new ){\\替换单个字符}

     String   /replace(String  old,String new ){\\替换整个字符串}

去除字符串的两个空格:String  /trim(){\\只能去除字符串开始和结尾的两个空格,中间的不能}

StringBuffer

线程安全的可变字符序列

1.StringBuffer的构造方法

public StringBuffer(){}

public StringBuffer(int  capacity){}

public StringBuffer(String  str){}

2.StringBuffer的常用方法

append(){\\追加【内存中的改变】}

toString(){\\通过StringBuffer转换String}

reverse(){\\反转}

equals 与 == 的区别

== 比较常量时就比较值,比较引用类型时,就比较的是地址值

equals 只能比较引用类型,比较时先比较它们的内存地址,再去比较它们的值,两个条件值是或的关系

String ,StringBuffer,StringBuilber的区别

String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全):该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候

String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。

常用类:String,StringBuffer,StringBuilder的更多相关文章

  1. JAVA基础--常用类 String,StringBuffer, 基础数据类型包装类, Math类, Enum类

    字符串相关类: String, StringBuffer String类为不可变的字符序列 String s1="hello"; String s2="hello&quo ...

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

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

  3. Java 常用类String类、StringBuffer类

    常用类 String类.StringBuffer类 String代表不可变的字符序列 "xxxxxxx"为该类的对象 举例(1) public class Test { publi ...

  4. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  5. String,StringBuffer,StringBuilder的区别

    public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...

  6. 关于String StringBuffer StringBuilder

    0. String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...

  7. [置顶] String StringBuffer StringBuilder的区别剖析

    这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...

  8. String StringBuffer StringBuilder (转)

    转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...

  9. 【Java基础】String StringBuffer StringBuilder

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

  10. String,StringBuffer,StringBuilder的区别及其源码分析

    String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而 ...

随机推荐

  1. Linux系统vi模式下显示行号

    在命令模式下输入:set nu或者:set number都可以为vi设置行号,如果要取消的话,则输入:set nonu行号的设置是vi的环境设置,不会影响文本的内容.

  2. php隔行换色输出表格

    <?php header("Content-type:text/html;charset=utf-8"); $str=''; $str.='<table border= ...

  3. php追加数组

    <?php //追加数组 array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数 ...

  4. 彩扩机项目--NPN和PNP三极管作为开关管的区别

    上图是最终画好的电路.使用的是NPN三极管,并且把NPN三极管放在了下面.下面分析下NPN三极管作为开关管能否放在上面. 从上面两张图分析可知,当三极管作为开关管使用的时候,NPN三极管需要放在下面( ...

  5. 15个必须知道的 Chrome 开发技巧

    在 Web 开发者中,Chrome 是使用最广泛的浏览器.六周一次的发布周期和一套强大的不断扩大开发功能,使其成为了web开发者必备的工具.你可能已经熟悉了它的部分功能,如使用 console 和 d ...

  6. 浅谈 Requests包

    浅谈 Requests包 一:Requests包是做什么的? 简单地说,是用python处理HTTP的一个包. 它的标志也非常有气质,是一个双蛇杖,按照官方的说法,一条蛇代表client,一条代表se ...

  7. sublime text 3 配置python IDE

    Python越来越受“程序猿”们的青睐.快速的开发模式,简洁的代码格式,海量的扩展,这无疑都为python的火热奠定了基础. “磨刀不误砍柴工”,一款功能强劲的IDE能帮助开发者有效的管理.编辑,运行 ...

  8. vijos1080题解

    题目: 对于一个递归函数w(a,b,c) 如果a<=0 or b<=0 or c<=0就返回值1. 如果a>20 or b>20 or c>20就返回w(20,20 ...

  9. Jemeter基础

    jemeter主要组件: a.测试计划(Test Plan) 是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器. b.线程组(Thread Group) 代表一定数量的并发用户,它 ...

  10. 【亲测】自动构建多个指定的class并发执行:Jenkins+Maven+Testng框架

    要解决的问题:jenkins在自动构建maven项目时如何并发执行多个指定的class类 预置条件:testngXXX.xml文件已指定了多个class类 解决步骤:1.在maven项目中新建指定te ...