java字符串创建对象_JAVA学习之字符串对象的创建和比较

字符串是在每个编程语言都都会使用到的一种对象,它几乎可以包括所有键盘可以输入的文字或者其他特殊字符,或者换行符,TAB符等,

在JAVA中表示字符串的方法是一对英文半角双引号""之内,如"Hello World!"、"Hello \r\n World"、"Java"、"中文。"等,都是合法的字符串。

在JAVA中提供了多种创建字符串对象的方法,这里介绍最简单的两种,

第一种是直接赋值,

第二种是使用String类的构造方法:

如下所示:

String str1=null;

String str2="";

String str3=new String();

String str4="Hello world";

String str5=new String("Hello world");

第一行代码是说明的是变量str1是一个null(空值)。

第二行代码是给这个str2赋值一个空的字符串""。

第三行也是str3赋值一个空的字符串。

第四行str4的字符串的值为"Hello world"。

第五行str5的值也是"Hello world".

需要注意的是

1.空的字符串""和空值(null)是两个不同的概念,空字符串是说明这个字符串对象是存在的,但是不包含任何字符,而null的意思就是这个对象什么都没有,没有指向任何内存地址

2.str4,str5分别是用直接赋值和使用String构造方法创建出来的带初始值"Hello world"的字符串变量,然而通过这两种方法创建的字符串却是不同的。

直接赋值法,是先创建一个字符串的常量"Hello world",并将基赋值给变量str4,

而使用构造方法创建出来的是先创建一个字符串常量"Hello world",然后再创建一个对象,然后该对象的内容指向这个字符串常量,再然后str5指向这个对象。

在我们使用字符串的时候,经常要遇到比较两个字符串是否一样,是否相等的情况,如果能够区分str4和str5的不同之处,那么就比较容易好判断了。

在比较的时候,使用比较运算符中的==号可以比较两个字符串(注意是字符串)是否相等,但是不能用==来判断两个字符串对象(注意是对象)是否相等。

因为使用比较运算符==比较的是两个字符串对象的地址,即使两个字符串对象的内容完全相同,但是他们的内存地址是不同的,所以不能直接使用==这个运算符来进行比较。

在JAVA中,String对象提供了一个判断两个字符串对象内容是否相等的方法equals()。

使用方法如下:

public boolean equals(String str){}

将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。

如果给定对象表示的 String 与此 String 相等,则返回 true;否则返回 false。即,如果两个对象的内容相同,就返回true,否则false。比较的是内容

在上面的变量,常量中

"Hello world"=="Hello world";返回true,因为这两个是同一个字符串常量,

str4==str5; 返回false,因为这两个字符串对象虽然内容相同,但是指向的内存地址不一样,

str4.equals(str5);返回true,因为这两个字符串对象的内容是相同的,而equals()方法比较的就是内容,而不是对象。

注:内容相同指的是区别字母大小写。如a和A就是不相同的。

由于字符串比较的情况比较多,所以能够掌握字符串对象的实例化原理和比较的原理,用起来会更加得心应手。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值