equals和==的区别

本文主要介绍equals和==的区别,以及堆内存、栈内存、方法区之间如何进行地址指向,String类中包含的方法。


String类:

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。String类是Object类的子类,

构造方法:

              A:public String()空构造

              B:publicString(byte[] bytes) //把字节数组转换成字符串(字节值得范围:-128~127)

              C:publicString(byte[] bytes,int offset,int length) //把字节数组的一部分转换成字符串,int offset指数组的索引,int length指需要的长度个数。

              其他不同类型的数组类比上例

特点:

       A:字符串一旦被赋值,就不能改变。

                     注意:这里指的是字符串的内容不能改变,而不是引用不能改变。

       B:字面值作为字符串对象和通过构造方法创建对象的不同

                     Strings = new String("hello");和String s ="hello"的区别?

                     前者会在堆内存和方法区分别创建对象,后者只在方法区创建一个对象

       C:equal和==

==:基本类型比较的是值是否相同;比较引用类型比较的是地址值是否相同

equals :比较引用类型默认也是比较地址值是否相同,而String类重写了equals()方法,比较的是内容是否相同

字符串的功能

              A:判断功能

                     boolean equals(Object obj) 比较字符串内容是否相同,区分大小写
                     boolean equalsIgnoreCase(String str)  比较字符串内容是否相同,不区分大小写
                     boolean contains(String str)  判断大字符串中是否包含小字符串
                     boolean startsWith(String str)  是否以某个指定字符串开头
                     boolean endsWith(String str)  是否以某个指定字符串结尾
                     boolean isEmpty()  是否为空
                            字符串内容为空:String s=""
                            字符串对象为空:String s=null 空指针异常

              B:获取功能

                     int length()  获取字符串长度
                     char charAt(int index)  获取指定索引位置的字符
                     int indexOf(int ch)  返回指定字符在此字符串中第一次出现处的索引
注意:这里为什么用int类型,而不是char类型?原因是‘a’和97其实都可以代表‘a’,避免强制转换。
                     int indexOf(String str)  返回指定字符串在此字符窜中第一次出现处的索引
                     int indexOf(int ch,int fromIndex)  返回指定字符在此字符串中从指定位置后第一次出现处的索引
                     int indexOf(String str,int fromIndex)  返回指定字符串在此字符串中从指定位置后第一次出现处的索引
                     String substring(int start)  从指定位置开始截取字符串,默认到末尾,包含start
                     String substring(int start,int end)  从指定位置开始到指定位置结束截取字符串 

              C:转换功能

                     byte[] getBytes()  把字符串转换成字节数组
                     char[] toCharArray()  把字符串转换成字符数组
                     static String valueOf(char[] chs)  把字符串数组转换成字符串
                     static String valueOf(int i)  把int类型的数组转换成字符串
注意:String类的valueof方法可以把任意类型的数据转换成字符串
                     String toLowerCase()  把字符串转换成小写
                     String toUpperCase()  把字符串转换成大写
                     String concat(String str)  把字符串拼接

D:其他功能

                     a:替换功能 

                            Stringreplace(char old,char new)

                            Stringreplace(String old,String new)

                     b:去空格功能

                            Stringtrim() 去除字符串两端空格

                     c:按字典比较功能(字典指A-Z的顺序结果可能为正,也可能为负)

                            intcompareTo(String str)
                            intcompareToIgnoreCase(String str) 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值