JavaSE 字符串
JavaSE 字符串
- API
- API 概述
- String
- String 概述
- String 构造方法
- String 对象的特点
- 字符串的比较
- 通过帮助文档查看 String 中的方法
- StringBuilder
- StringBuilder 概述
- StringBuilder 的构造方法
- StringBuilder 的添加和反转方法
- String 和 StringBuilder 的相互转换
- 通过帮助文档查看 StringBuilder 中的方法
API
API 概述
API(Application Programming Interface):应用程序编程接口
Java API:指的就是 JDK 中提供的各种功能的 Java 类
这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,
只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。
String
String 概述
String 类在 java.lang 包下,所以使用的时候不需要导包
String 类代表 字符串,Java 程序中的所有字符串文字(例如:“ABC”)都被实现为此类的实例,也就是说, Java 程序中所有的双引号字符串,都是 String 类的对象。
字符串的特点:
- 字符串不可变,它们的值在创建后不能被改变
- 虽然 String 的值是不可变的,但是它们的值可以被共享
- 字符串效果上相当于字符数组( char[ ] ),但是底层原理是字节数组( byte[ ] )
String 构造方法
String 对象的特点
- 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
char[] chs = {'A','B','C'};
String s1 = new String(chs);
String s2 = new String(chs);
上面的代码中,JVM 会首先创建一个字符数组,然后每一次 new 的时候都会有一个新的地址,只不过 s1 和 s2 参考的字符串内容是相同的
2. 以 " " 方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会创建一个 String 对象,并在字符串池中维护
String s3 = "ABC";
String s4 = "ABC";
上面的代码中,针对第一行代码,JVM 会建立一个 String 对象放在字符串池中,并给 s3 参考;
第二行则让 s4 直接参考字符串池中的 String 对象,也就是说它们本质上是同一个对象
字符串的比较
使用 == 做比较
- 基本类型:比较的是 数据值 是否相同
- 引用类型:比较的是 地址值 是否相同
字符串是对象,它比较内容是否相同,是通过 equals() 方法来实现的
- public boolean equals(Object anObject): 将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数直接传递一个字符串
通过帮助文档查看 String 中的方法
StringBuilder
StringBuilder 概述
StringBuilder 是一个可变的字符串类,可以把它看成是一个容器,这里的可变是指 StringBuilder 对象中的内容是可变的
String 和 StringBuilder 的区别:
- String:内容是不可变的
- StringBuilder:内容是可变的
StringBuilder 的构造方法
StringBuilder 的添加和反转方法
String 和 StringBuilder 的相互转换
- StringBuild 转换为 String
public String toString():通过 toString() 就可以实现吧 StringBuilder 转换为 String - String 转换为 StringBuilder
public StringBuilder(String s): 通过构造方法就可以实现把 String 转换为 StringBuilder
通过帮助文档查看 StringBuilder 中的方法
JavaSE 字符串相关推荐
- JavaSE(六)包装类、基本类型和字符串之间的转换、==和equals的区别
一.包装类 Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足, 在设计类时为每个基本数据类型设计了一个对应的类进行代表,这 ...
- java产生字符函数_java生成字符串md5函数类(javaSE)
//实现生成MD5值 import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.B ...
- JavaSE——StringBuffer与StringBuilder拼接字符串详细解释
目录 一.基本了解 1.1使用字符串频繁拼接会出现什么问题? 1.2 了解StringBuffer 1.3 了解StringBuilder 1.4 StringBuffer与StringBuilde ...
- 2019-9-19【Javase】String字符串、装箱和拆箱、日期类、正则
文章目录 一.字符串 1.String类 2.StringBuffer类 StringBuffer 和 StringBuilder区别: 二.装箱和拆箱 装箱和拆箱: 比较: 常用的功能: 三.日期类 ...
- javaSE (十五)正则表达式应用(字符串排序、替换、叠词的切割与替换、查找和导出)
1.字符串排序: 描述:将字符串"91 27 46 38 50"排序,得到"27 38 46 50 91" 将字符串切割成字符串数组 String[] stra ...
- 【JavaSE系列】Java中的字符串之字符串常量池
⭐️前面的话⭐️ 本篇文章带大家认识Java基础知识--字符串类,在前面我们已经知道如何在Java中定义字符串,本文将介绍Java字符串中的字符串常量池,探究字符串相等问题.
- 【JavaSE】day03_Date、SimpleDateFormat、Calendar、Collection
[JavaSE]day03_Date.SimpleDateFormat.Calendar.Collection 1.Date及其经常使用API 1)JAVA 中的时间 Java中的时间使用标准类库的D ...
- JVM---StringTable(字符串常量池)
StringTable(字符串常量池) 字符串常量池 StringTable(字符串常量池) String的基本特性 String 的底层结构 String 的内存分配 String 的基本操作 字符 ...
- 生成唯一字符串算法_面试官问:在分布式场景,生成唯一ID,你有几种方案?...
来源:http://t.cn/RG0AW0a 说明:本文代码采用C#,重要的是理解解决方案,代码实现都是次要的. 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结.生成I ...
- 读取字符串字符时出错_JVM | 运行时常量池和字符串常量池及intern()
本文知识点 这一块的知识点,一直都是最为混乱的,网上很多博客有的都自相矛盾,因此,这一块需要深入学习,本文以JDK11为基础,尽量参考官方文档 静态常量池 运行时常量池及字符串的引用 各种String ...
最新文章
- pandas使用groupby函数和agg函数获取每个分组特定变量独特值的个数(number of distinct values in each group in dataframe)
- 收藏:用DE-9IM判断二维空间位置关系
- C# 笔记 获取程序当前目录
- 如何使用Sublime Text 2重新格式化HTML代码?
- 官方版下载_药店大学app官方版下载
- lamp怎么使用mysql_我的LAMP实现过程——MySql
- boost::range_const_reverse_iterator相关的测试程序
- 我是如何用Jquery实现网页缩小放大的
- java学到哪里最容易蒙,蒙哥比vs蒙克(目前最好的哪个)
- JBox2d入门学习二 -----我的小鸟
- python类型转换astype时间_Pandas数据类型转换的几个小技巧
- kafka 控制台命令
- 【数据仓库】数据仓库设计前如何粗估所需的存储空间大小?
- SIGPIPE信号处理
- 电脑一直自动输入一个字符
- 酷派新机先进得让人害怕,凄惨背后的原因竟是这样?
- 关于IT公司技术委员会职责
- scrapy爬取51job职位信息(针对2020.851job新的反爬虫机制)
- Z字型变幻,整数反转
- 达达php源码,达达房卡麻将二次开发VIP系统学习课程
热门文章
- nvidia显卡驱动,cuda,和cudnn版本
- SELinux permissive模式 设置
- 树莓派docker 搭建owncloud个人云盘
- SDN:势不可挡的网络演进大潮
- IPv4和IPv6比特转发率和包转发率的关系
- Tkinter文件夹选择路径功能+打开位置目录功能(Python3.6.X)
- cesium模型不遮挡点线面_VueCLI3.0干货系列之集成Cesium三维地球框架
- C++11中using 的使用
- 基于matlab的高等数学,基于MATLAB的高等数学问题求解
- Java编程思想读书笔记(一)第1~13、16章