=以及==和equals的比较

news/2024/12/22 13:39:51 标签: java, equals, 对象

2-1_ 对于“=”,即将右边的值赋给左边变量,右边不论是什么,只要能生成一个值就行。对于常量的赋值,例如a=b,只是将右边的内容复制给左边,即使再修改a的内容,b(右值不受影响);对于对象的赋值,例如c=d,我们实际是将一个对象的引用(d)赋给另一个对象的引用(c),那么c和d都指向原来d的对象(内存空间)。
2-2_
一、java当中的数据类型和“==”的含义:
基本数据类型(也称原始数据类型) ,他们之间的比较,应用双等号(==),比较的是他们的值。
复合数据类型(类):当他们用(==)进行比较的时候,对象实体的内存地址,即堆内存的地址。
二、equals()方法介绍:
JAVA当中所有的类都是继承于Object这个超类的,在Object类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地址,但在一些类库当中这个方法被复写了,如String等,在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。
所以说,对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是内存中的存放位置的地址值,跟双等号(==)的结果相同;如果被复写,按照复写的要求来。
三、String中的equals()和==比较:
equals()比较的是字符串的内容是否相等,==比较的是字符串实体的内存地址是否相等。
String ff=”bb”;
String hh = “bb”;
System.out.println(ff==hh);//结果为true,并没有开辟新的内存空间,引用的指向是一样的。
String gg = new String(“bb”);
System.out.println(ff==gg);//结果为false,内存地址不一样了。
System.out.println(ff.equals(gg));//结果为true,内容一致


http://www.niftyadmin.cn/n/1504365.html

相关文章

Myslq 之登陆、退出

windows 添加 mysql 环境变量,在windows环境下,终端清屏的命令是 cls 登陆 mysql -u 用户名 -p 密码 退出 exit; mysql 默认端口号是 3306 mysql 中的超级用户是 root 转载于:https://www.cnblogs.com/joffe/p/8930922.html

java中的垃圾处理机制

1.何为垃圾 在Java中,如果对象实体没有引用指向的话,存储该实体的内存便成为垃圾。JVM会有一个系统线程专门负责回收垃圾。垃圾同时包括分配对象内存间的碎片块, 2.垃圾处理包含的算法 Java语言规范没有明确地说明JVM使用哪种垃圾回收算法&am…

Eclipse中Cannot nest src folder解决方法

错误示例: : Java Model Status [Cannot nest output folder xxx/bin/main inside output folder xxx/bin] 解决方法: 右击项目 -> properties -> java build path -> source 一般是上图的红框的问题,这个已经改过的,报错…

Redis 未授权访问漏洞批量提权

一.getshell前提 ①能有对 /root/.ssh/目录写入的权限 ②目标机开启22端口 二.安装依赖 sudo easy_install redis 三.使用 redis python hackredis.py usage: hackredis.py [-h] [-l IPLIST] [-p PORT] [-r ID_RSAFILE] [-sp SSH_PORT]For Example: -----------------…

AIDL(初解)

1.什么是AIDL: AIDL(Android Interface Define Language)是Android接口定义语言。Android系统中进程之间不是实现内存共享,所以需要一些机制在进程之间实现数据的通信。IPC进程间通信方式的一种,用于生成可以在安卓设备上两个进程之间进行进…

Java环境搭建及语言基础

JRE和JDK JRE:Java Runtime Environment,java运行环境。 JDK:Java Development Kit,java开发工具包。 使用JDK开发java程序,交给JRE运行。 JDK下载和安装 http://www.oracle.com/technetwork/java/javase/downloads/in…

chmod变更文件或目录的权限

chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的…

Android布局文件Values、Values-v11关系

Values和Values-v11是以匹配的方式进行工作的。 Values-v11针对的是API 11 之上的版本,如果再有个Values-v14,那么11-14版本之间的都用Values-v11这个文件夹中的内容。如果都没有找到,那么Values文件夹进行最后的匹配。 之所以values-v11用的比较多&am…