---09 12 10---
对象的比较:我们已知道Java定义了8种基本类型,基本类型的比较用"=="
那我们用什么来比较对象呢?
在Java中用了一个"特殊"的方法(equals)来比较对象,那么"=="能比较对象
吗? 答案是肯定的,但两者有什么区别呢?我们一起来看看
class Compare1
{
public static void main(String args[])
{
String str1=new String("hello");
String str2=new String("hello");
String str3=str1;
if(str1==str2)
{
System.out.println("str1==str2");
}
else
{
System.out.println("str1!=str2");
}
if(str1==str3)
{
System.out.println("str1==str3");
}
else
{
System.out.println("str1!=str3");
}
}
}
我们先来猜一下运行结果:是不是【str1!=str2】
【str1==str3】
class Compare2
{
public static void main(String args[])
{
String str1=new String("hello");
String str2=new String("hello");
String str3=str2;
if(str1.equals(str2))
{
System.out.println("str1 equal str2");
}
else
{
System.out.println("str1 not equal
str2");
}
if(str1.equals(str3))
{
System.out.println("str1 equal str3");
}
else
{
System.out.println("str1 not equal
str3");
}
}
}
OK 让我们来分析一下这两个实例代码:
在Compare1这个类中我们创建了三对象str1 str2 str3分别是其
句柄即str1 str2 str3分别代表了三个对象在内存中的地址(对象附着在句
柄上方便Java虚拟机在内存中找到它们).str1 str2 代表了两个个不同的内
存位置,两个对象在内存的不同位置,我们用"="把str1的内存地址赋值给了
str3。我们用"=="来比较其内存地址是否相同,很显然str1和str2是不相等
的,str3和str1是相同的。(最好去联想一下对象在堆栈中的分配)
在Compare2这个类中我们用到了equals方法,equals方法是String
类的一个方法,是用来判断两个引用变量(句柄)所指向的对象内容是否相等.
(我们来学习Java语言时肯定要用到jdk提供给我们的东东,有的朋友肯能会
问:你怎么知道用Java中提供的这种方法的? 我是去查的JDK文档,这是Sun提
供给我们的Java类库说明。我们在学习一种语言时肯定要用到语言开发者提
供给我们的"工具"或问题解决的方案,用语言提供的东东来实现我们想要做的
事,这才是语言出现的目的,否则就是失败的语言)
分享到:
相关推荐
这份“非常详细JavaSE学习笔记.rar”压缩包显然是一份全面的Java SE学习资源,包含了从基础知识到高级特性的全方位讲解。下面,我们将详细探讨这份笔记可能涵盖的关键知识点。 1. **Java起源与环境搭建**:笔记可能...
这份"javase学习笔记(全)"涵盖了刘意版传智播客课程的主要内容,是学习Java编程语言的重要参考资料。以下将对Java SE的一些关键知识点进行详细解释: 1. **Java基础**:Java的基础语法包括数据类型(如整型、浮点型...
JavaSE学习笔记(个人)
JavaSE知识点总结,适合初学者,放在手机里,当做电子书来看。
javase和javaee学习笔记, 下载绝对没错, 这是自己在学习的时候写的笔记包括javase和javaee
java李兴华学习笔记之JAVASE基础部分.pdf
JavaSE学习笔记(1).nyf
"黑马程序员Javase笔记"是一个自学者在学习黑马程序员提供的Java全套课程过程中整理的笔记,主要涵盖了Java Standard Edition (Javase) 的核心内容。下面将详细讨论其中的关键知识点。 首先,DOS命令是操作系统中的...
javase基础学习笔记
以上只是张龙老师JavaSE课堂笔记的部分内容概述,实际笔记中还会涉及更多的细节和实例,旨在帮助学习者全面掌握JavaSE的核心知识,为后续的JavaEE和Android开发打下坚实基础。通过系统学习和实践,读者能够熟练运用...
JavaSE之学习笔记
JavaSE基础学习笔记2020涉及到Java技术的基础部分、Java语言的基础语法、面向对象编程以及JavaSE的核心内容。接下来我将针对各个章节的知识点进行详细说明。 一、Java技术基础 1. 编程语言:程序设计语言经历了从...
JavaSE学习笔记,多线程,I/O流,集合,反射,常用设计模式
javase-学习笔记.pdf
这个学习笔记包含了Java开发的基础阶段知识,是初学者掌握Java编程语言的关键。以下将详细解析JavaSE中的主要知识点: 1. **Java基础语法**:Java是一种强类型、面向对象的编程语言,它的基础语法包括变量声明、...
JavaSE学习笔记,包含入门案例到面向对象,集合,反射,注解,多线程,JUC等内容。适合新手小白想入门Java的,或者学习完需要一份完整的Java笔记。这份笔记内容全面,而且有很多配图,可以帮助大家理解
### JAVASE学习笔记 #### 一、Java概述与版本介绍 **1.1 Java的三个版本** - **JavaSE (Standard Edition)**: 标准版,主要用于桌面应用程序的开发。 - **JavaEE (Enterprise Edition)**: 企业版,专为大型企业级...
基础扎实是进阶学习的关键,这部分笔记将帮助读者确保对Java的基本理解无遗漏。 2. **Java异常处理.pdf**: 异常处理是Java编程中的重要部分,用于处理程序运行时可能出现的问题。Java提供了try-catch-finally语句...