一、API中说Java程序中的所有字符串字面值(如”abc“)都作为此类的实例实现
其实就是说:程序当中所有的双引号字符串,都是String类的对象,(就算没有new也照样是)
二、字符串的特点:
1.字符串的内容永不可变。 【重点】
2.正是因为字符串不可改变,所以字符串时可以共享使用的
3.字符串效果上是char[ ]字符数组,但是底层原理是Byte[ ]字节数组
一、API中说Java程序中的所有字符串字面值(如”abc“)都作为此类的实例实现
其实就是说:程序当中所有的双引号字符串,都是String类的对象,(就算没有new也照样是)
二、字符串的特点:
1.字符串的内容永不可变。 【重点】
2.正是因为字符串不可改变,所以字符串时可以共享使用的
3.字符串效果上是char[ ]字符数组,但是底层原理是Byte[ ]字节数组
三、创建字符数组的常见3+1种方式:
三种构造方法:
public String( ) :创建一个空白字符串,不含有任何内容
public String( char[ ] array) :根据字符数组的内容,来创建对应的字符串
public String( byte[ ] array) :根据字节数组的内容,来创建对应的字符串;
一种直接创建
String str="Hello"; //右边直接用双引号
四、查看源代码:按住ctrl不松找到想查看的比如(String)可以查看源代码
五、注意:直接写上双引号就是字符串对象。
六、字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中
七、(1) 对于基本类型来说==是进行数值的比较
对于引用类型来说==是进行地址值的比较
(2)双引号直接写的字符串就在常量池中,new的不在常量池中
八、==时进行地址值的比较,如果实在是需要字符串的内容比较可以使用两个方法:
public boolean equals(Object obj):参数可以是任何对象 //System.out.println("hello".equals(str2)); [false]
备注:1.任何对象都可以使用Object进行接收,只有参数是一个字符串且内容相同的才会给true,否则返回false
2.equals方法具有对称性,也就是a.equals(b)=b.equals(a)
3.如果比较一个常量一个变量推荐把常量字符串写在前面,因为如果str为null的话就会发生空指针异常
推荐:”abc“.equals(str1) 不推荐str1.equals(”abc“)
public boolean equalsIgnoreCase(String str); 忽略大小写,进行内容比较 (只有英文字母区分大小写,其他不区分还是false) //System.out.println("hello".equalsIgnoreCase(str1)); [true]
九、String当中获取相关的常用方法有:
public int lenth( ) :获取字符串当中含有的字符个数,拿到字符串长度
public String concat(String str) :将当前字符串和参数字符串拼接成为返回值新的字符串
public char charAt(int index) :获取指定索引位置的单个字符。(索引从零开始)
public int indexOf(String str) :查找参数字符串在本字符串中首次出现的索引位置,如果没有返回-1值
String类
最新推荐文章于 2024-10-06 20:16:20 发布