==和equals判等、空串和null串、字符串常用API(二)

简介: ==和equals判等、空串和null串、字符串常用API(二)

🪂 字符串使用==和equals判等的区别?

 ==是对两个字符串变量的引用地址值是否相等进行判断,就算字符串的内容相等如果存储的位置不同也会返回false。String类中重写了Object的equals方法使之可以对字符串的内容进行判等,查看源码不难发现重写之后的equals方法是对两个字符串的地址、长度、每一个字符顺序进行判断,在判断的过程中但凡有一个不等就直接返回false。

 趁热打铁,结合字符串的两种实例化方式和两种判等方式找几个题做做,答案放在文末了,记得去对照一下 image.png 补充一个知识点,如果想忽略字母大小写比较两个字符串的内容是否相等,可以使用equalsIgnoreCase方法,用法与equals相同



🪂 空串""和null串有啥区别?

 空串是一个长度为0内容为空的字符串,属于是一个字符串对象;null串表示这个变量并未引用任何的对象或者基本数据类型值,属于是一个供引用数据变量引用的值。空串引用String的API 会返回值,但是null串调用String的API 的话会报NullPointerException的错误。一般情况下都会使用if(str != null && str.length() != 0)对字符串进行检查,符合条件才会使用这个字符串。

image.png



🪂 这些String的常见API你都掌握了吗?

image.png

 拓展一个compareTo方法,该方法会对比两个字符串并返回一个int数值,对比规则:从第一个字符开始相比较,返回第一个不同的两个字符的ASCII码的差值(前减后),如果说一个字符串是另一个的字串就返回二者的长度差

image.png


🪂 String StringBuilder StringBuffer都是啥?

 这三种都是Java中用来操作字符串的类。区别就是String声明一个不可变的对象,每次操作都会生成一个新的对象,并将新的对象地址赋给原来的字符串变量,而StringBuilder和StringBuffer都是在原来的对象上进行操作并不会产生新的对象,所以说在需要经常改变字符串内容的情况下最好使用这两种类。image.png  StringBuilder和StringBuffer也是有区别的,StringBuffer线程安全但是性能相对较差,StringBuilder线程不安全但是性能较高,于是单线程的情况下推荐使用StringBuilder,多线程的话就使用安全的StringBuffer

image.png

字符串的两种实例化方式和两种判等方式的问题答案


相关文章
|
3天前
|
Java API 开发者
|
7天前
|
存储 JavaScript Java
Java中未被初始化的字符串打印出“null”?
在Java中,未初始化的`String`变量默认值为`null`。打印此类变量时输出“null”,是因为`PrintStream`类中的`print`方法特别处理了`null`值,将其转换为字符串“null”。从JDK 17开始,`println`方法通过`String.valueOf`间接实现相同功能。当拼接包含`null`的字符串时,如`s1 + "BLACK"`,结果为“nullBLACK”,这是因为字符串构建过程中`StringBuilder`的`append`方法将`null`转换为“null”。
|
2月前
|
存储 缓存 Java
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
27 2
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型
|
2月前
|
Java 程序员 API
JavaSE——常用API(1/3)-包、String概述、String常用方法(length、charAt、遍历字符串、toCharArray......)
JavaSE——常用API(1/3)-包、String概述、String常用方法(length、charAt、遍历字符串、toCharArray......)v
26 0
|
3月前
|
API Python
[AIGC] Python字符串常用API介绍
[AIGC] Python字符串常用API介绍
|
10月前
|
存储 Java API
API及String类和字符串相关使用方法
API及String类和字符串相关使用方法
|
C# 索引
C#基础⑨——字符串(string str = null 与string str = ““的区别)
字符串数组变字符串(字符串数组变新的字符串数组)
|
SQL JavaScript 关系型数据库
API接口获得数据后处理JS数组(包含字符串对象)分组、过滤和筛选的解决方案
API接口获得数据后处理JS数组(包含字符串对象)分组、过滤和筛选的解决方案
142 0