Java常用类--String类

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

String类的知识点汇总

1、String表示字符串类型,属于引用数据类型,不属于基本数据类型。
2、在java中随便使用双引号括起来的都是String对象。例如:“abc”,“def”,“hello world!”,这是3个String对象。
3、java中规定,双引号括起来的字符串,是不可变的,也就是说"abc"自出生到最终死亡,不可变,不能变成"abcd",也不能变成"ab"
4、在JDK当中双引号括起来的字符串,例如:“abc” "def"都是直接存储在“方法区”的“字符串常量池”当中的。
       为什么SUN公司把字符串存储在一个“字符串常量池”当中呢。因为字符串在实际的开发中使用太频繁。为了执行效率,所以把字符串放到了方法区的字符串常量池当中。
       如果是采用双引号引起来的字符串常量,首先会到常量池中去查找,如果存在就不再分配,如果不存在就分配
       String s = “abc”;         //s为方法区中字符串常量池里字符串的引用
       String s = new String(“abc”);         //s为堆内存区String对象的引用,对象中再保存方法区中字符串常量池里字符串的引用
5、对String在内存存储方面的理解:
       第一:字符串一旦创建不可变。
       第二:双引号括起来的字符串存储在字符串常量池中。
       第三:字符串的比较必须使用equals方法。
       第四:String已经重写了toString()和equals()方法。

String的构造方法

       String s = new String(byte数组);
       String s = new String(byte数组, 起始下标, 长度);
       String s = new String(char数组);
       String s = new String(char数组, 起始下标, 长度);

String类常用的21个方法

1(掌握)char charAt(int index)
       返回指定索引处的 char 值
2(了解)int compareTo(String anotherString)
       如果参数字符串等于此字符串,则返回值 0
       如果这两个字符串不同,那么它们要么在某个索引处的字符不同(该索引对二者均为有效索引), 要么长度不同,或者同时具备这两种情况。如果它们在一个或多个索引位置上的字符不同,假设 k 是这 类索引的最小值;则在位置 k 上具有较小值的那个字符串(使用 < 运算符确定),其字典顺序在其他字 符串之前。在这种情况下,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值:
       this.charAt(k)-anotherString.charAt(k)
       如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差,即值:
       this.length()-anotherString.length()
3(掌握)boolean contains(CharSequence s)
       判断前面的字符串中是否包含后面的子字符串。
4(掌握)boolean endsWith(String suffix)
       判断当前字符串是否以某个子字符串结尾。
5(掌握)boolean startsWith(String prefix)
        判断某个字符串是否以某个子字符串开始。
6(掌握)boolean equals(Object anObject)
       比较两个字符串必须使用equals方法,不能使用“==”
7(掌握)boolean equalsIgnoreCase(String anotherString)
       判断两个字符串是否相等,并且同时忽略大小写。
8(掌握)byte[] getBytes()
       将字符串对象转换成字节数组
9(掌握)int indexOf(String str)
       判断某个子字符串在当前字符串中第一次出现处的索引(下标)
10(掌握)int lastIndexOf(String str)
       判断某个子字符串在当前字符串中最后一次出现的索引(下标)
11(掌握)int length()
       面试题:判断数组长度和判断字符串长度不一样
       判断数组长度是length属性,判断字符串长度是length()方法。
12(掌握)boolean isEmpty()
       判断某个字符串是否为“空字符串”。底层源代码调用的应该是字符串的length()方法
13(掌握)String replace(CharSequence target, CharSequence replacement)
       替换字符串
       String的父接口就是:CharSequence
14(掌握)String[] split(String regex)
       拆分字符串
15(掌握)String substring(int beginIndex) 参数是起始下标。
       截取字符串
16(掌握)String substring(int beginIndex, int endIndex)
       beginIndex起始位置(包括)
       endIndex结束位置(不包括)
17(掌握) char[] toCharArray()
       将字符串转换成char数组
18(掌握)String toLowerCase()
       转换为小写。
19(掌握)String toUpperCase();
       转换为大写
20(掌握)String trim();
       去除字符串前后空白
21(掌握)static String valueOf()
       String中只有一个方法是静态的,不需要new对象, 这个方法叫做valueOf
       作用:将“非字符串”转换成“字符串”
       这个静态的valueOf()方法,参数是一个对象的时候,会自动调用该对象的toString()方法
       通过源代码可以看出:为什么输出一个引用的时候,会调用toString()方法!!!println调用valueOf,valueOf再调用toString
       本质上System.out.println()这个方法在输出任何数据的时候都是先转换成字符串,再输出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值