equal重写

本文探讨了单例设计模式的原理和目的,强调其在内存管理和性能优化中的作用。接着,介绍了equal重写的思路,从比较内存地址到检查属性。此外,还涉及了排序算法、接口与抽象类的关系、重载与重写的概念,以及面向对象编程的三大思想,包括堆内存分配、哈希代码等主题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单例设计模式

(有点类似属性的封装,只不过单例设计模式是封装对象)

目的为了确保程序在内存中只有一个对象存在(被程序共享)
使用单例设计模式可以节省内存空间,提高性能。因为很多情况下,有些类是不需要重复产生对象的。
如果重复产生对象的话,会导致大量的内存空间被占用,性能降低。

equal的重写思路

因为是对变量引用的比较判断
1.先判断是不是同一个内存地址
2.在判断内存地址的属性

Person类的equal方法重写
public boolean equal(Object o){
	//传入的对象引用o如果和对比对象自身this
	//内存地址一样(即指向同一个堆内存)则两者的属性内容一定一样
	if (this = o){
	return true;
	}
	//如果传入的引用变量是null
	if (o == null) {
	return false;
	}
	//判断传入的对象类型于对比对象的类型是否相同类型
	//使用instanceof关键字
	//如果类型相同继续判断
	if (o instanceof Person){
		//两个对象类型相同,把传入的对象强转成Person类
		Person p = (Person)o;
		//再对属性进行比较
		if(this.name.equals(p.name) && (this.age,equals(p.age))){
			//相同
			return true;
		}
	}
	return false
}
	
Person类的equal方法重写
public boolean equal(Object o){
	//传入的对象引用o如果和对比对象自身this
	//内存地址一样(即指向同一个堆内存)则两者的属性内容一定一样
	if (this = o){
	return true;
	}
	//如果传入的引用变量是null
	if (o == null) {
	return false;
	}
	//判断传入的对象类型于对比对象的类型是否相同类型
	//使用instanceof关键字
	//如果类型相同继续判断
	if (o instanceof Person){
		//两个对象类型相同,把传入的对象强转成Person类
		Person p = (Person)o;
		//再对属性进行比较
		if(this.name.equals(p.name) && (this.age,equals(p.age))){
			//相同
			return true;
		}
	}
	return false
}

3.排序
冒泡排序,选择排序,插入排序、快速排序(时间复杂度、空间复杂度)
4.接口、抽象类之间的关联,实现接口,继承父类
5.重载与重写的区别
6.面向对象三大思想

1、调用不同子类时堆内存的分配情况???
2、main()方法详解
3、超类
4、哈希代码
5、hashCode方法的常规协定
6、HashMap方法
7、输出的内容是否放在栈内存
8、方法用栈内存加载的
9、java斐波那契数列
10、数组数据存放在哪里(顿内存?)
(1)使用匿名内部类时,我们必须是继承一个类或者实现一个接口,但是两者不可兼得,同时也只能继承一个类或 者实现一个接口。(为什么)(类是可以实现接口同时继承抽象类的,二匿名内部类并不行)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值