day16 常用类(String、StringBuffer、StringBuilder)
1、String是唯一一个可以直接用常量赋值的引用数据类型。
String的常量也是一个对象。
数据段——字符串常量池。
2、每一个字符串常量对象在加载期放入字符串常量池。
java对String常量会在加载期预加载,产生到数据段的字符串常量池中。
运行的时候,如果要用到某个String常量,只需要直接从常量池中取出即可。
3、String拥有一个特殊点叫:String对象内容不可变。
这导致String在做字符串拼接的时候,会有比较大的内存消耗,而StringBuilder和StringBuffer就是用来解决String内容不可变这个问题的。
4、在java中专门重载了“+”号运算符,用来实现字符串的拼接。
在java中也针对String设计了大量的操作方法:
1、String跟数组相关的方法:length(),charAt(),indexOf(),lastIndexOf(),toCharArray()
2、String跟字母有关的方法:toUpperCase(),equalsIgnoreCase()不区分大小写比较两字符串,compareTo()字典顺序比较
3、与内容操作相关:replace(),endWith(),subString()截取字符串,concat()字符串拼接,contains()判断子串
4、最重要的三个方法:
4-1、trim()——去掉字符串前后的空格,(接收字符串输入的时候默认调用的方法)养成习惯。
4-2、split()——做字符串拆分,根据指定的分隔符(传输内容的时候,按一定格式传输和拆分)。
4-3、matchs()——正则表达式效验。
正则表达式:字符串内容的匹配模板。
正则表达式本身就是一个字符串。
符号:
1、[]代表一个字符,里面的内容代表有哪些选择。
2、{}代表前面的正则式出现的次数。
{m,n}最少出现m次,最多出现n次 {m,}最少出现m次 {m}只能出现m次
3、()代表分组可选(_|_|_|...)
StringBuffer/StringBuilder
1、它们是全新的类型,与String没有继承关系。
2、它们不享受String的特殊语法。
3、它们是为了解决String的内容不可变问题出现的,它们是可变的。
4、它们的方法没有String丰富,大部分方法用于做字符串的拼接或删除,用的时候多半需要下标。
区别:
StringBuffer先与StringBuilder产生。
StringBuffer是线程安全的。
StringBuilder是非线程安全的,单线程的情况下尽量用它。
同样的情况下,凡是线程安全的,性能都低一些,凡是线程不安全的,性能都高一些。
day16 常用类(String、StringBuffer、StringBuilder)的更多相关文章
- JAVA基础--常用类 String,StringBuffer, 基础数据类型包装类, Math类, Enum类
字符串相关类: String, StringBuffer String类为不可变的字符序列 String s1="hello"; String s2="hello&quo ...
- 重温java中的String,StringBuffer,StringBuilder类
不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...
- Java 常用类String类、StringBuffer类
常用类 String类.StringBuffer类 String代表不可变的字符序列 "xxxxxxx"为该类的对象 举例(1) public class Test { publi ...
- java中 String StringBuffer StringBuilder的区别
* String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...
- String,StringBuffer,StringBuilder的区别
public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...
- 关于String StringBuffer StringBuilder
0. String对象的创建 1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...
- [置顶] String StringBuffer StringBuilder的区别剖析
这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...
- String StringBuffer StringBuilder (转)
转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...
- 【Java基础】String StringBuffer StringBuilder
String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...
- String,StringBuffer,StringBuilder的区别及其源码分析
String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而 ...
随机推荐
- [buaa-SE-2017]个人作业-Week2
个人作业-Week2 一.代码复审Checklist 1.概要部分 1.1 代码能符合需求和规格说明么? 本次作业的需求可以分成基本的功能实现和大规模数据下程序的健壮性,以及少量的异常处理能力,也就是 ...
- 实验三 敏捷开发和XP实验
课程:Java程序设计实验 班级:1352 姓名: 于佳心 学号:20135206 成绩: 指导教师:娄嘉鹏 ...
- Task 6.2冲刺会议十 /2015-5-23
今天是第一个冲刺阶段的最后一天,主要把做出来的程序进行了初步的测试,在一台笔记本上运行程序,摄像头可以工作也能听到声音和麦克多的运转也还可以,两台计算机同时在一个局域网中通信的时候也可以实现.不过后续 ...
- HDU 1015 Jury Compromise 01背包
题目链接: http://poj.org/problem?id=1015 Jury Compromise Time Limit: 1000MSMemory Limit: 65536K 问题描述 In ...
- Software Defined Networking(Week 2, part 1)
History of SDN 1.1 - 1.2 本节讨论从上世纪八十年代时到现在为止出现的SDN的思想和发展历史.了解历史,可以明白技术后面的成因以及一些原则,并从架构上去大致掌握.了解一些主旨. ...
- 使用百度地图api可视化聚类结果
1.写在前面 上接YFCC 100M数据集分析笔记,在对聚类出的照片GEO集聚类后,为了方便检测聚类结果,我们显示直接采用了 python 的 matplotlib 库以经纬度为坐标画出聚类结果,但发 ...
- ReentrantLock 和 Condition的使用
ReentrantLock ReentrantLock可以等同于synchronized使用. ReentrantLock 类实现了Lock ,它拥有与 synchronized 相同的并发性和内存 ...
- iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件上传
官方建议AFN的使用方法 0.导入框架准备工作 •1. 将AFNetworking3.0+框架程序拖拽进项目 •2. 或使用Cocopod 导入AFNetworking3.0+ •3. 引入 ...
- vue router 几种方式对比 (转载)
<div id="app"> <h1>Hello App!</h1> <p> <!-- 使用 router-link 组件来导 ...
- 计算机网络【7】—— TCP的精髓
参考文献: http://blog.chinaunix.net/uid-26275986-id-4109679.html TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证 ...