认识Java中String与StringBuffer以及StringBuilder
String(引用数据类型)
String对象一经创建就不会发生变化(在常量池里),即便是赋予新的值,也不是在原来的基础上改变,而是创建一个新的字符串对象,将引用指向这个对象,会造成空间的浪费;
String str1="abc"; 字符串 abc存在于常量池 , str1="sss"; 给str1赋予新的sss值,意味着在常量池增加了一个字符串sss,对原来的字符串abc并无影响;str1只是引用,str1由原来指向常量池中abc的地址转为指向常量池中sss的地址;

String的常用方法:
charAt(int index):根据索引返回对应的值;indexOf(String st):找st第一次在字符串中出现的位置;
length():返回字符串的长度;replace( char oldstr, char newstr)//replace( String oldstr, String newstr):将字符串中oldstr用newstr代替;
split():根据某个符号将字符串进行分割;substring(int beginindex,int endindex)//substring(int beginindex):返回一个子串,
trim():返回一个字符串,去掉前导和尾随空格; concat(String str):将指定的字符串拼接到字符串的末尾;
compareTo(String anotherstring):按字典顺序比较两个字符串;toString():返回的是一个字符串;
equals()方法比较的是字符串内容;endWith(String suffix):测试此字符串是否以指定的后缀结尾。
lastindexOf(String str)返回指定子字符串最后一次出现的字符串中的索引。
StringBuffer:
StringBuffer创建一个对象,是在同一个实例的基础上做改变,对字符操作效率高;
线程同步,线程安全效率低;
StringBuilder:线程不安全,并发操作,效率高;
单线程的情况使用StringBuilder比较好,多线程使用使用StringBuilder 加锁,也可以直接使用StringBuffer;
相对String,StringBuffer与StringBuilder另外独有的方法:
append(String str):将字符串加入到序列中;capacity();返回当前的容量;
delete(int start,int end):删除指定位置的字符串;delete(int index):删除指定的索引对应的字符;
reverse():导致序列被序列的相反代替;replace(int satr,int end,String str):用字符串代替指定位置的字符串;
insert(int s,String str):将字符串插入指定序列中
equals():默认比较的是内存地址,如比较内容需要重写equals;
两个等号(==):
基本数据类型:比较内容,引用数据类型:比较地址
String str1="";与String str2=null;的区别:
String str1="' 创建了一个长度为0的字符串,并且为其分配了内存空间;
String str2=null 声明了一个str2对象的引用,但是系统并没分配内存空间;
String st=new String("abc");在内存中有两个对象,堆区有一个new String,常量池有一个字符串;
过多关于String StringBuffer StringBuilder 的知识,看API,以及源代码进一步了解;
认识Java中String与StringBuffer以及StringBuilder的更多相关文章
- java中String、StringBuffer、StringBuilder的区别
java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...
- Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...
- Java基础——java中String、StringBuffer、StringBuilder的区别
(转自:http://www.cnblogs.com/xudong-bupt/p/3961159.html) java中String.StringBuffer.StringBuilder是编程中经常使 ...
- Java中String、StringBuffer、StringBuilder区别与理解
一.先比较String.StringBuffer.StringBuilder变量的HashCode值 使用System.out.println(obj.hashcode())输出的时对象的哈希码, 而 ...
- Java中String、StringBuffer和StringBuilder之间的区别
String在Java中是字符串常量 例如 String str = "abc"; str = str + 1; System.out.println(str); 结果将是abc1 ...
- java中String、StringBuffer和StringBuilder的区别(简单介绍)
简单介绍 java中用于处理字符串常用的有三个类: 1.java.lang.String 2.java.lang.StringBuffer 3.java.lang.StrungBuilder 三者共同 ...
- Java中String、StringBuffer、StringBuilder、StringTokenizer的区别
Java语言中,有4个类可以对字符或字符串进行操作,它们是Character.String.StringBuffer.StringTokenizer,其中Character用于单个字符操作,Strin ...
- Java中String、StringBuffer、StringBuilder
String 对象 String 创建机制 String 是 Java 语言中非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑,由源码可知,它是典型的 Immutable (不可变)类,被fi ...
- Java中String、StringBuffer和StringBuilder的区别
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6581009.html 在编程中,对于字符串拼接,我们可以用String类重载的+或concat(str).S ...
随机推荐
- 基于 BDD 理论的 Nebula 集成测试框架重构(上篇)
本文首发于 Nebula Graph 公众号 NebulaGraphCommunity,Follow 看大厂图数据库技术实践. 测试框架的演进 截止目前为止,在 Nebula Graph 的开发过程中 ...
- js的节流、防抖以及使用场景
介绍 首先看一个没有经过任何处理的: 1 // 模拟一个输出的函数 2 function input(value) { 3 console.log(`输入的内容${value}`) 4 } 5 con ...
- H.264/H265码流解析
H.264/H265码流解析 一.H.264码流解析 一个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成 一个原始的 ...
- ffmpeg architecture(中)
ffmpeg architecture(中) 艰苦学习FFmpeg libav 您是否不奇怪有时会发出声音和视觉? 由于FFmpeg作为命令行工具非常有用,可以对媒体文件执行基本任务,因此如何在程序中 ...
- Appium_adb常用命令总结
以下为在工作学习过程中总结的常用的adb命令,用来做后续参考和查阅: 一.常用命令 显示当前运行的全部模拟器: adb devices 安装应用程序: adb install 应用程序.apk 备注 ...
- win10下abd环境配置
一.下载安装 Android SDK 下载地址: http://tools.android-studio.org/index.php/sdk 下载完成后进行解压至D盘根目录下,也可以自定义英文路径下 ...
- 单点突破:Spring(上)
Spring概述 我们常说的 Spring 实际上是指 Spring Framework,而 Spring Framework 只是 Spring 家族中的一个分支而已.Spring 是为了解决企 ...
- JDBC连接MongoDB
pom文件中导入驱动 <!-- MongoDB驱动 --> <dependency> <groupId>org.mongodb</groupId> &l ...
- SSM和SpringBoot常用注解
SpringBoot的重要注解 @SpringBootApplication 创建 SpringBoot 项目之后会默认在主类加上 我们可以把 @SpringBootApplication看作是 @C ...
- Centos flock 防止脚本重复运行
如果crontab设定任务每分钟执行一次,但执行的任务需要花费5分钟,这时系统会再执行导致两个相同的任务在执行.发生这种情况下可能会出现一些并发问题,严重时会导致出现脏数据性能瓶颈等恶性循环.为了防止 ...