- 博客(5)
- 收藏
- 关注
原创 重载跟重写的区别:
重写是子类覆盖父类的方法,子类的重写方法名、参数列表、返回类型必须和父类一致,并且重写方法不能使用比父类更严格的访问权限。重载发生在一个类中,在一个类中定义相同名字、但参数不同的多个方法。
2023-05-26 17:48:53
71
1
原创 重写equals为什么还要重写hashcode
2、在散列集合中,是使用hashcode来计算key应存储在hash表的索引,如果重写了equals而没有重写hashcode,会出现两个完全相同的两个对象,hashcode不同,计算出的索引不同,那么这些集合就乱套了。3、提高效率,当我们比较两个对象是否相同的时候,先比较hashcode是否相同,如果hashcode不相同肯定不是一个对象,如果hashcode不同再调用equals来进行比较,减少比价次数提高效率。1、为了保证一个原则,equals相同的两个对象hashcode必须相同。
2023-05-15 22:08:22
3901
4
原创 String类型直接赋值跟使用new的区别
方式二:先在堆中创建空间,维护了value属性,value指向常量池的abc空间,如果常量池没有"abc",创建后指向,如果有直接通过value指向。s2 最终指向的是堆中的空间地址,堆中维护的value指向的是常量池中的"abc"。方式一:先从常量池里面查看是否有"abc"数据空间,如果有,直接指向;如果没有则创建后指向。s1最终指向的是常量池里的空间地址。方式二:调用构造器 String s2 = new String ("abc")方式一:直接赋值 String s1 = "abc"
2023-05-11 16:39:30
201
1
原创 抽象类与接口的不同
通过接口可以将不同的类的对象看做是同一个类型,这样可以在不同的场合使用相同的代码来处理不同的对象,提高了代码的灵活性和可重用性。子类继承抽象类时,必须使用关键字extends,并且只能继承一个抽象类。抽象类可以包含非抽象方法的实现,子类可以直接使用这些方法,不必重新实现。抽象类提供了一些基本的方法实现,但又有一些方法需要子类实现,在减少代码重复的同时又保证了代码的灵活性。抽象类是一个类,可以包含属性,方法,抽象方法。子类实现接口时,必须使用关键字implements,可以实现多个接口。
2023-05-10 20:15:14
97
原创 == 与 equals的区别
2、equals方法:equals是Object类的方法,比较的是对象的地址是否相同。 拿String类举例来说:首先先比较两者地址是否相同,再比较类型是否相同,再比较长度,都相同的情况下进行逐字符比较,目的是在地址不相同的情况下比较字符串是否相同。 String类与包装类(Byte、Short、Integer、Long、Float、Double、Character、Boolean)都重写了equals方法。1、“==” 运算符:如果比较的是基本数据类型,则比较的是存储的值;三、equals的重写。
2023-05-10 19:46:00
345
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人