java/04/String类的特点,String的常用方法,this关键字

java/04/String类的特点,String的常用方法,this关键字

String 是一个字符串类型的类,使用“"”双引号定义的内容都是字符串,但是String类本身会有一些特殊。

String类的两种实例化方式

在之前使用过String,最早使用的是直接采用了“String 变量 = “字符串”;”这种直接赋值的方法。
第二种是构造方法实例化:
public String(String str)
在构造方法里仍要接收一个本类对象;
例:String str =new String(“Hello World”);

在String 上也可以使用“”比较,但“”比较的其实是内存地址(栈内存),而非内容(堆内存)。

==比较

“==”比较的内存分析如下:
==内存分析

面试题:请解释在字符串相等的判断中“”与“equals()”的区别。
"是java提供的关系运算符,主要功能是进行数值相等判断的,如果用在字符串上,则比较的是地址数值;
而”equals()“是由String类提供的一个方法,此方法专门负责进行字符串内容的比较,比较的是字符串的内容

字符串常量就是Sting的匿名对象

实际上任何的语言都没有提供字符串这一概念,很多的语言里面使用了字符数组,所有的开发都不可能离开字符串的应用,最终Java自己创造了字符串。
所谓的直接赋值实际上相当于将一个匿名对象设置了一个名字而已,但是匿名对象是系统自动生成的,不再同用户自己直接创建。

空指向问题
在开发中,要送判断输入的内容是否是某一字符串,请一定要将字符串放在equals方法前面,而equals方法处理了输入为空的情况。
共享设计模式
String类对象实例化
对字符串的操作,所谓的字符串的内容实际上根本就没有改变(java就定义好了String的内容不能改变),对于字符串对象内容的改变,是利用了引用关系的变化而实现的(改变内存指向),但每次改变都会产生垃圾。
字符串内容的变化实际上是如何操作的,如下:(改变内存指向)
字符串实际的变化过程

总结String类的特点:

String类对象的相等判断使用equals()方法完成,“==”实现的是地址数值的比较;
字符串内容一旦声明则不可改变,String类对象内容的改变是依靠引用关系的改变。
String类有两种实例化方式 ,使用直接赋值可以不产生垃圾空间,并且自动入池,不要使用构造方法完成。

String类的常用方法(重点)

可以查看文档
jdk文档常常由以下部分组成:
类中的成员组成;
类中所提供的构造方法;
类中所提供的普通方法;
类成员,构造方法,普通方法的详细说明。

字符与字符串

String类的常用方法
String类的常用方法
如果写的某个方法返回的内容是boolean,那么习惯性的做法是将此方法以“isXxx”命名。

字节与字符串

字节与字符串
字节与字符串
字节和字符串之间的关系与后面内容的io流,乱码转换有关

字符串的比较

java是严格区分大小写的
public boolean equals(String anObject) 普通方法用于进行相等比较且区分大小写
public boolean equalsIgnoreCase(String anotherString) 普通进行相等比较但不区分大小写
public int compareTo(String anotherString) ** 普通方法用于判断两个字符串的大小(按照字符编码比较),此方法的返回值有如下三种结果:
=0 :表示要比较的两个字符串相等;
>0 :表示大于0的结果;
<0 :表示小于0的结果。
现在
只有String类的对象才具有大小的关系判断**。

字符串查找

字符串查找
字符串查找
字符串查找
字符串查找
在Java里面,contains已经成为了一个查询的代名词,且它基本返回boolean值。

字符串的替换

public String replaceAll(String regex,String replacement)
为普通方法用于让新的内容替换全部旧的内容;
public String replaceFirst(String regex,String replacement)
为普通用于替换首个满足条件的内容。

字符串截取

从一个完整的字符串之中可以截取部分的子字符串数据,支持的方法如下:
public String substring(int beginIndex)
为普通方法用于从指定的索引截取到末端;
public String substring(int beginIndex,int endIndex)
为普通方法用于从指定的开始索引(不包括)截取到指定结束索引(包括)之间的内容。

字符串拆分

public String[] split(String regex)
为普通方法用于按照指定的字符串进行全部拆分;
public String[] split(String regex,int limit)
为普通方法用于按照指定的字符串进行部分拆分,最后的数组长度就是由limit决定的(如果能拆分的结果很多,数组长度才会由limit决定),即:前面拆,后面不拆,作为整体。
例:字符串的拆分

String类的其它方法

public String concat(String str)
为普通方法用于字符串的连接与“+”相似
public String toLowerCase()
为普通方法用于字符串转小写(自动针对字母);
public String toUpperCase()
为普通方法用于字符串转大写(自动针对字母);
public String trim()
为普通方法用于去除字符串两边的空格,中间空格保留;

各种对象长度获取:
数组对象.length
String对象.length()

this关键字

1,this调用属性;
2,this调用方法;
3,利用this表示当前对象。
this调用属性
在Java程序里面它是以“{}”为界限,如果属性名称与参数名称出现了重名,当没有加入任何的限制,指的都是最近的“{}”内的变量名称。
为了加以区分,只要是访问类中的属性前面必须加上“this.”
this调用方法
所谓的this实际上指的就是明确的标记本类的结构,类中除了成员之处还有方法(普通方法和构造方法);形式:this(参数,参数);
限制:
1,使用“this()”调用构造方法形式的代码只能够放在构造方法的首行;
2,进行构造方法互相调用的时候,一定要保留调用的出口(不要让全部的构造方法使用this调用方法防止其出现递归调用错误);
this调用表示当前对象
所谓的当前对象指的就是当前正在调用类中方法的对象。

@沉木

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值