java中常见的一部分容易混淆的知识点(1)

本文深入探讨了Java中抽象类与普通类的区别,抽象类与接口的对比,以及List和Set集合的特点。详细解析了ArrayList与LinkedList的工作原理及适用场景,HashMap与TreeMap的特性,适合Java初学者和开发者巩固基础知识。

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

自己用来看的,每次做题都容易忘,查到的都放一起,容易找

  • java类可以继承抽象类和普通类
    区别:
    抽象类:
    1、抽象类中可以有普通方法,如果想让方法子类必须实现,就弄成抽象方法。
    2、如果抽象类中有抽象方法,那么这个类必须定义为抽象类。
    3、抽象类不能被new。
    普通类:
    1、普通类中不能有抽象方法。
    2、如果一个普通类实现了一个抽象接口或者抽象类,那么意味着必须重写抽象方法
  • 抽象类和接口的区别
    1. 一个子类只能继承一个抽象类,但能实现多个接口
    2. 抽象类可以有构造方法,接口没有构造方法
    3. 抽象类可以有普通成员变量,接口没有普通成员变量
    4. 抽象类和接口都可有静态成员变量,抽象类中静态成员变量访问类型任意,接口只能public static final(默认)
    5. 抽象类可以没有抽象方法,抽象类可以有普通方法,接口中都是抽象方法
    6. 抽象类可以有静态方法,接口不能有静态方法
    7. 抽象类中的方法可以是public、protected;接口方法只有public
  • 抽象类和接口的相似性
    1 接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承。
    2 接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。
  • 当同时存在继承和实现接口时,顺序一定是先继承后实现。
  • 集合中的一些知识点,易混淆的易忘的
  • 由Collection接口派生的两个接口是List和Set。
    1.List有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。允许有重复
    2.LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。线程不安全。
    3.ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
    4.Vector非常类似ArrayList,但是Vector是同步的
    5.Set是一种不包含重复的元素的Collection。
  • arraylist和linkedlist
    1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
    2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
    3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
  • HashMap无序,TreeMap有序。
  • HashTable线程安全,不能有空的键值对,而HashMap线程不安全,可以有空的键值对。(Map集合中不能包含相同的key)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值