6-10

重载和重写的区别
重载:发生在同一个类中,方法名必须相同,参数类型、个数顺序不同,返回值和修饰符要相同
重写,子类和父类,方法名参数类型个数顺序必须一致,异常范围小于等于父类,修饰符大于等于父类,如果是private 则不可以重写

接口和抽象类
抽象类可以存在普通成员函数,而接口中public abstract方法,抽象类中的变量可以是很多种类型,而接口中只可以常量

接口的设计目的,是为了对类的行为进行约束,约束行为的有无,但对如何实现没有进行限制。
而抽象类的设计目的,是为了代码复用,党不同的类具有相同的行为,并且有一部分的行为实现方式一致时,可以让这些类派生出一个抽象类,抽象类是先有的子类再有的抽象类。子类也可以拓展,抽象类书无法实例化的,因为有抽象函数。
抽象类表达is a ,宝马is car,包含并实现子类的通用特性,差异化的部分有子类自己实现。
接口like a,接口是为了定义行为,bird like airpot
是什么(本质),可以做什么(行为)
抽象类的功能超过接口,但是只能单继承,代价高

list和set的区别

lsit 有序,按进入属性,重复,可以用迭代器取出也可以用get取出
set 无序,不充分,只可以用迭代器遍历

hashcode与equal
哈希,散列码,hashcode()获得哈希吗,返回int整数,确定对象在哈希表中的索引,储存方式时key——value,特点时根据剑快速的检索出对应的的值。

大大减少equal次数,提高执行速度。
如果两对象相等,则hashcoed一定相同
两对象相等两个对象调用equal返回ture
hashcode相等不一定相等
equal被覆盖那么hashcode也要被覆盖
hashcode()对堆上的值返回一个独特值

Arraylist和linkedlist
Arraylist动态数组,连续的内存存储,适合下标访问,元素类型一致
有扩容机制,将老数组放进新数组之内,之后将老数组会受到,1.5扩容,
Linkedlist链表,存储在分散内存中,适合做数据的插入和删除,不适合做查询;要用迭代器才可以遍历,用for消耗极大,对下表访问不友好,也不要使用indexof返回元素索引,性能很低

全部评论

相关推荐

2024-12-29 15:37
已编辑
西华大学 图像识别
程序员牛肉:去不了,大厂算法卡学历吧
点赞 评论 收藏
分享
01-17 08:34
门头沟学院 Java
想找对象的单身狗在努力存钱:这工资不低了,再高点人家要招博士硕士的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务