String

关于Java JDK 中内置的一个类:java.lang.String

  • String表示字符串类型,是引用数据类型,不是基本的数据类型。

  • String类型底层数组是final修饰的,是不可变的。就是说 String 声明对象以后,是不可修改的,字符串“abc"从出生到死亡,不可能变成"abcd”,“ab”。

  • StringBuilder 底层数组没有⽤ final 修饰,可变;线程不安全效率⾼(⼀般⽤的多)

  • StringBuffer 底层数组没有⽤ final 修饰,可变;线程安全,效率低(⼀般⽤的少),⽅法都采⽤ 了 synchronized 修饰

  • Java中用双引号括起来的是字符串,例如“abc”、“def”。都是直接存储在“方法区字符串常量池中的。

  • 除了双引号的构造方法,还可以通过new的方式来创建字符串对象,如使用:String s3=new String("xy");来创建字符串对象。

  • 为什么要把字符串储存在“字符串常量池”中呢?

  • 因为字符串在实际的开发中使用非常的频繁;

  • 为了提高执行的效率,所以把字符串方法哦了方法区的“字符串常量池”中

String中常用的方法

Modifier and Type

(修饰语和类型)

Method and Description

(方法与描述)

char

charAt(int index)

返回 char指定索引处的值。

int

compareTo(String anotherString)

按字典顺序比较两个字符串。

String

concat(String str)

将指定的字符串连接到该字符串的末尾。

boolean

contains(CharSequence s)

当且仅当此字符串包含指定的char值序列时才返回true。

static String

valueOf(boolean b)

返回 boolean参数的字符串 boolean形式。

valueOf(char c)

返回 char参数的字符串 char形式。

valueOf(char[] data)

返回 char数组参数的字符串 char形式。

valueOf(char[] data, int offset, int count)

返回 char数组参数的特定子阵列的字符串 char形式。

valueOf(double d)

返回 double参数的字符串 double形式。

valueOf(float f)

返回 float参数的字符串 float形式。

valueOf(int i)

返回 int参数的字符串 int形式。

valueOf(long l)

返回 long参数的字符串 long形式。

valueOf(long l)

返回 long参数的字符串 long形式。

copyValueOf(char[] data)

相当于 valueOf(char[])

copyValueOf(char[] data, int offset, int count)

相当于 valueOf(char[], int, int)

boolean

equals(Object anObject)

将此字符串与指定对象进行比较。

int

hashCode()

返回此字符串的哈希码。

int

indexOf(int ch)

返回指定字符第一次出现的字符串内的索引。

indexOf(int ch)

返回指定字符第一次出现的字符串内的索引。

indexOf(String str)

返回指定子字符串第一次出现的字符串内的索引。

indexOf(String str, int fromIndex)

返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。

boolean

isEmpty()

返回 true如果,且仅当 length()为 0 。

int

lastIndexOf(int ch)

返回指定字符的最后一次出现的字符串中的索引。

lastIndexOf(int ch, int fromIndex)

返回指定字符的最后一次出现的字符串中的索引,从指定的索引开始向后搜索。

lastIndexOf(String str)

返回指定子字符串最后一次出现的字符串中的索引。

lastIndexOf(String str, int fromIndex)

返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索。

int

length()

返回此字符串的长度。

String

substring(int beginIndex)

返回一个字符串,该字符串是此字符串的子字符串。

substring(int beginIndex, int endIndex)

返回一个字符串,该字符串是此字符串的子字符串。

char

toCharArray()

将此字符串转换为新的字符数组。

对象初始化

  1. 静态代码块

  • 如果对类的静态域进⾏初始化的代码⽐较复杂,那么可以使⽤静态的初始化块

  • 静态初始化块只执⾏⼀次,且在对象初始化块之前执⾏

2、构造器的具体处理步骤

  • 如果构造器第⼀⾏调⽤了第⼆个构造器, 则基于所提供的的参数执⾏第⼆个构造

器, 否则:

  • 所有数据域被初始化为默认值(0、false 或null)

  • 按照在类声明中出现的次序, 依次执⾏所有域初始化语句和初始化块

  • 先执⾏静态初始化块,再执⾏对象初始化块

  • 静态初始化块只执⾏⼀次,对象初始化块在每次创建这个类的对象时均执行。

  • 执行这个构造器的主体。

3、对象析构与 finalize ⽅法

  • Java 有⾃动的垃圾回收器,不需要⼈⼯回收内存

  • Java 不⽀持析构器

  • 如果某个资源需要在使⽤完毕后⽴刻被关闭,对象⽤完时,可以应⽤⼀个close ⽅法来完成相应的清理操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值