- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 ,
您可能关注的文档
- Java String类为什么是不可变的.pdf
- Java7源码解读之string.pdf
- Java集合set.pdf
- json解析:FastJson 使用.pdf
- Linux新加硬盘.pdf
- MAX5920AESA+;MAX5920CESA+T;MAX5920BESA+T;MAX5920AESA+T;MAX5920CESA+;中文规格书,Datasheet资料.pdf
- MAX5947BESA+;MAX5947CESA+;MAX5933AESA+;MAX5947AESA+;MAX5947AESA+T;中文规格书,Datasheet资料.pdf
- miRNA-7全文.pdf
- NV-108L 英文说明书.pdf
- OpenCV基本操作.pdf
最近下载
- 日立电梯HGE3客梯电气原理图电气规格表K3400003.pdf
- 脑卒中后抑郁.ppt VIP
- 旋转阀ACCS操作法汇.doc
- 《醉翁亭记》三年中考考试题(含答案析)-备战中考语文课内文言文知识点梳理+三年考试题训练(部编版).docx
- 2.3 周而复始的循环第一课时教学课件 教科版(2019)高中信息技术必修1.pptx VIP
- 精品解析:北京市中国人民大学附属中学2021-2022学年九年级上学期10月月考物理试题(原卷版).docx VIP
- 血液透析并发症心力衰竭ppt.pptx
- 2024年秋季中国石油大庆油田有限责任公司高校毕业生招聘630人备考试题及答案解析.docx
- 围术期伴发的精神障碍的预防.pptx VIP
- AD5791_cn 中文说明书.pdf
文档评论(0)