`

09 12 10 JavaSE学习笔记

阅读更多

---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

    这份“非常详细JavaSE学习笔记.rar”压缩包显然是一份全面的Java SE学习资源,包含了从基础知识到高级特性的全方位讲解。下面,我们将详细探讨这份笔记可能涵盖的关键知识点。 1. **Java起源与环境搭建**:笔记可能...

    javase学习笔记(全)

    这份"javase学习笔记(全)"涵盖了刘意版传智播客课程的主要内容,是学习Java编程语言的重要参考资料。以下将对Java SE的一些关键知识点进行详细解释: 1. **Java基础**:Java的基础语法包括数据类型(如整型、浮点型...

    JavaSE学习笔记(个人)

    JavaSE学习笔记(个人)

    JavaSE学习笔记(知识点总结)

    JavaSE知识点总结,适合初学者,放在手机里,当做电子书来看。

    javase和javaee学习笔记

    javase和javaee学习笔记, 下载绝对没错, 这是自己在学习的时候写的笔记包括javase和javaee

    java李兴华学习笔记之JAVASE基础部分.pdf

    java李兴华学习笔记之JAVASE基础部分.pdf

    JavaSE学习笔记(1).nyf

    JavaSE学习笔记(1).nyf

    黑马程序员Javase笔记

    "黑马程序员Javase笔记"是一个自学者在学习黑马程序员提供的Java全套课程过程中整理的笔记,主要涵盖了Java Standard Edition (Javase) 的核心内容。下面将详细讨论其中的关键知识点。 首先,DOS命令是操作系统中的...

    javase基础学习笔记

    javase基础学习笔记

    圣思园张龙JavaSE课堂笔记

    以上只是张龙老师JavaSE课堂笔记的部分内容概述,实际笔记中还会涉及更多的细节和实例,旨在帮助学习者全面掌握JavaSE的核心知识,为后续的JavaEE和Android开发打下坚实基础。通过系统学习和实践,读者能够熟练运用...

    JavaSE之学习笔记

    JavaSE之学习笔记

    JavaSE基础学习笔记2020.pdf

    JavaSE基础学习笔记2020涉及到Java技术的基础部分、Java语言的基础语法、面向对象编程以及JavaSE的核心内容。接下来我将针对各个章节的知识点进行详细说明。 一、Java技术基础 1. 编程语言:程序设计语言经历了从...

    javaSE笔记

    JavaSE学习笔记,多线程,I/O流,集合,反射,常用设计模式

    javase-学习笔记.pdf

    javase-学习笔记.pdf

    JavaSE学习笔记.rar

    这个学习笔记包含了Java开发的基础阶段知识,是初学者掌握Java编程语言的关键。以下将详细解析JavaSE中的主要知识点: 1. **Java基础语法**:Java是一种强类型、面向对象的编程语言,它的基础语法包括变量声明、...

    JavaSE的学习笔记

    JavaSE学习笔记,包含入门案例到面向对象,集合,反射,注解,多线程,JUC等内容。适合新手小白想入门Java的,或者学习完需要一份完整的Java笔记。这份笔记内容全面,而且有很多配图,可以帮助大家理解

    JAVASE学习笔记

    ### JAVASE学习笔记 #### 一、Java概述与版本介绍 **1.1 Java的三个版本** - **JavaSE (Standard Edition)**: 标准版,主要用于桌面应用程序的开发。 - **JavaEE (Enterprise Edition)**: 企业版,专为大型企业级...

    JavaSE精华笔记.zip

    基础扎实是进阶学习的关键,这部分笔记将帮助读者确保对Java的基本理解无遗漏。 2. **Java异常处理.pdf**: 异常处理是Java编程中的重要部分,用于处理程序运行时可能出现的问题。Java提供了try-catch-finally语句...

Global site tag (gtag.js) - Google Analytics