Java之Vector源码分析(第一篇:初步了解)

(注意:本文基于JDK1.8)

前言

    Vector与ArrayList不同,Vector是线程安全的线性表容器,Vector底层同样使用数组持有元素,虽然在实际项目中几乎不会再使用Vector,但是它的实现方式仍值得我们学习,通过学习Vector的缺点,可以让我们避免犯同样的错误……所以求职时,Vector也是高频面试题……

1、Vector的增删改查方法均由synchronized修饰,这意味着在同一时刻只能有一个线程访问这些方法,没有获取到当前Vector对象锁的其他线程会处于阻塞状态,这保证了作为共享变量的底层数组对象的线程安全

2、Vector早在JDK1.0就发布给用户使用,而ArrayList则是JDK1.2才发布给用户的

3、Vector使用的底层数组的默认容量为10

4、Vector的底层数组容量使用的扩容量为1倍(备注:扩容数组的增量可以自定义数量)

Vector类结构

public class Vector<E>
    extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{ }

1、继承AbstractList

2、实现List接口,说明Vector具备线性表的功能

3、实现RandomAccess接口,说明Vector支持随机访问元素,即支持使用下标访问元素

4、实现Cloneable接口,说明支持使用clone()方法创建对象

5、实现java.io.Serializable接口,说明对象支持序列化

创建对象的4种方式

添加元素的方法

删除元素的方法

修改元素的方法

查找元素的方法

元素遍历的方式

1、for循环 通过下标

2、foreach方式

3、Iterator方式

4、Enumeration方式

接下来的文章就从这些方面逐个熟悉这些方法的实现,Let us go!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值