面试--==和equals、String\

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的前身

猜你喜欢

转载自blog.csdn.net/qq_40408317/article/details/80058872