String数据类型比较.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
String数据类型比较

Java Java JJaavvaa数据类型比较 Java Java JJaavvaa数据类型分为两种。一种为基本数据类型(或为简单数据类型、主要数据类型),另 外一种为引用数据类型(或为扩展类型)。基本数据类型存储的是具体的值,而引用数据类 型存储的是对象的引用。 Java (1) == (2) equals() Java (1) == (2) equals() 在JJaavvaa中通过两种方式可以比较两个数据是否相等:((11))使用操作符“====”;((22))使用eeqquuaallss(()) 方法。 � 基本数据类型比较 在Java中,基本数据类型比较一般使用操作符“==”进行比较。因为原始类型(int、 char 等)不是对象,因此只能用操作符“==”进行比较。 � 引用数据类型比较 Java中没有内置字符串类型,在标准 Java 库中有一个名为String 的预定义类,将字 符串作为预定义的对象处理,并且提供了丰富的功能来处理字符串。而比较两个对象的 值,则使用equals()方法,因为操作符“==”比较的是两个对象的本身而非对象的内容。 对象的比较 String 是Java中一个最常用的不可变对象。其对象的创建有两种方式: 其一:String str=abc; 其二:String str=new String(abc); � 两者都为第一种方式创建对象的比较 String str1=abc; String str2=abc; System.out.println(str1==str2); 首先定义一个名为str1 的String类的对象引用变量。接着,在栈内存中搜索是否存在 这样一个存储单元,用来存放“abc”的值。若没有,则开辟一个新的存储单元存放“abc” 的值。然后,创建一个新的String类的对象x。并将对象x 指向新开辟的存储单元,同 时在栈内存中标记这个引用的对象x。如果已经存在值为“abc”,则搜索对象x,并返 回该对象x的地址。最后,将str1指向对象x 的地址。Str1指向存在栈中数据的引用。 String str2=abc;在栈内存中创建了一个对象引用变量str2,之前栈内存中已经有一个 对象x 值为“abc”,所以str2直接指向对象x,因此JVM 创建了两个对象引用变量str1 和str2,但仅创建了一个对象x,并且两个引用都指向了对象x,所以比较的结果为true。 � 两者都为第二中方式创建对象的比较 String str1=new String(abc); String str2=new String(abc); System.out.println(str1=str2); 系统会在栈内存中分别创建两个对象引用变量str1和str2,接着用new 关键字在栈内 存中创建两个对象,因为new 运算符在每一次运算是,都会产生一个新的对象,每一 个新的对象都有自己的内存和地址。所以两个引用变量分别表示了两个不同的对象。因 此比较的结果为false。 � 两者各自创建的对象比较 String str1=abc; String str2=new String(abc); System.out.println(str1==str2); 据前面的的分析,我们可以看出这个比较的结果为false。系统在栈内存中创建了两个 对象引用变量str1、str2.其中str1指向栈中的一个对象,str2指向堆中的一个对象。即 两个引用分别指向不同的两个对象,所以比较结果为false。 � 第一种声明方式的分割比较 String str1=abc; String str2=a+bc; System.out.println(str1==str2); Java ,

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档