浅谈 ==和equals的区别,this和super的用法
来源:互联网 发布:java 字符串排序 编辑:程序博客网 时间:2024/05/18 10:11
package 方法;
/**
* ==和equals的区别
* this和super的用法
* @author Administrator
*
*/
public class July25 {
==和equals的区别
/* 在讲==和equals之前,我先讨论一下“=”的用法,“=”在java中是赋值号,eg:int a=1;
这里是吧数值为1的常量赋值给定义为整型的变量a中,其中a在堆里已经开辟了一个内存。赋值的意思
就是把1放大到了这个堆内的内存中。
1.==
基本数据类型:是比较两个基本数据类型它们值之前是不是相等,eg:int i=1;int j=1;i==j?//true;
引用数据类型:比较其中的内存地址是不是相等,eg:Person p1=new Person();Person p2=new Person();
p1==p2//false;
在这里要特别谈一下我的理解:当new一个对象p1的时候,在堆内存中已经为p1开辟了一个连续存储单元,此时p1的存储的地址在栈
中也有与之对应的地址,同理在new对p2的时候,在堆内存中也为p2开开辟了一个连续的存储单元,此时p2的存储的地址在栈中
与之对应,p1和p2它们之前在栈中的地址是不一样的;因此用==比较p1和p2的地址是否相同,结果是错误的(false)。
2.equals
epuals比较的是两个对象的内容是不是相等;eg:String s1="abc";String s2="abc";//true
很明显既然比较的是对象s1和s2两个对象中内容是一样的。
this和super的用法
this表示当前对象,也就是当前类对象,super表示当前类的父类;
eg:1.你定义一个新的类:A,这个A继承了类B,也就是说B是A的父类。那么如果A中 有个方法:arr();B中也有个方法: arr();
那么在A 中用this.arr()调用的就是A中定义的方法,而super.arr()调用的就是A的父类B中定义的方法arr();
2.在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,new这个子类的实例对象后。
使用super来引用父类对象,使用this引用当前对象。
eg:2
public class F{//定义父类
public void s(){//定义父类方法s
}
}
public class K extends F{//定义子类K,继承父类F
public void s(){//定义子类方法s,覆盖父类s
}
public void k2(){
super.s();//通过super,指明调用父类的方法s
this.s();//通过this,指明调用当前类的方法s
}
} */
- 浅谈 ==和equals的区别,this和super的用法
- Overload和Override、super和this、==和equals()的区别
- this和super的区别用法
- 浅谈“==”和equals的区别
- this和super的用法
- super和this的用法
- this和super的用法
- this和super的用法
- super和this的用法
- this和super的用法
- this和super的区别
- super和this的区别
- super和this的区别
- this和super的区别
- Super和This的区别
- this和super的区别
- this和super的区别
- this和super的区别
- 【转】MySQL实现Oracle里的 rank()over(ORDER BY) 功能
- Java并发——Synchronized优化(轻量级锁、偏向锁)
- PAT B1048. 数字加密
- leetcode之Insert Interval 问题
- CSU---2017多校赛(13)---F Election
- 浅谈 ==和equals的区别,this和super的用法
- python3.5 如何在virtural env 下面使用libsvm
- java晋级之路--如何成为高级工程师
- POJ
- JavaScript的运算符
- [PAT乙级]1056. 组合数的和(15)
- Java中嵌套的IO流关闭的问题
- Qt QLable 响应单击点击事件
- jquery 获取html标签自定义属性值或data值