面试--==和equals、String\

本文探讨了Java中equals方法与==运算符的区别,包括它们如何比较对象以及String类型的特殊性。此外,还深入分析了HashSet的工作原理及其底层实现,并讨论了多态的概念和实现。

1.==和equals的区别

==比较的是内存中的地址值
equals看有没有重写其中的hashcode的方法
看有没有重写其中的hashcode和equals方法
如果只重写的是equals的方法的话比较的是其中的地址值的比较
然后equals的输出即为true
然后重写了hashcode的方法之后输出两种类型的size的比较的值是相同的
然后输出的结果即为1
String类型的比较特殊、比较的时候进行的是char层级的比较
比较的是每个字符、因此String类型的equals方法比较的是字符串的长度以及大小


——String

常量找池变量找堆
String类型先在常量池中生成的一个对象
然后再堆;里面进行的寻找的对象
一般的创建对象的方式是:“
String s1 = "123";
上面的创建的方式是再池中进行的创建创建的时一个对象
String s2 = new String("123");
创建的是两个对象
首先创建的是在常量池中创建的一个对象
然后再堆中创建的一个引用的对象有指针进行的指向的操作
所以说创建的是两个对象

2、hashset底层的实现是new出来的hashmap的方法

因此


present是一个长常量new出来的Object的对象

——多态(理解。。。)

——Java中通过方法的重载和方法的重写是多态的体现

方法重载不是多态的体现
方法重写才是多态的体现
override
overload
没有父类的继承或者接口的体现是实现不了多态的

——多态是编译期的行为还是运行期的行为

多态一定是运行时的行为
多态加反射+设计模式
就是Sprig的前身
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Diligently_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值