当前位置: 首页 > wzjs >正文

做网站的都是直男癌吗郑州模板网站建设

做网站的都是直男癌吗,郑州模板网站建设,山东省两学一做网站,html网站建设实例教程一、Vector和ArrayList、LinkedList联系和区别,分别的使用场景 ArrayList:底层是数组实现,线程不安全,查询和修改非常快,但是增加和删除慢 LinkedList: 底层是双向链表,线程不安全,查询和修改…

一、Vector和ArrayList、LinkedList联系和区别,分别的使用场景

ArrayList:底层是数组实现,线程不安全,查询和修改非常快,但是增加和删除慢

LinkedList: 底层是双向链表,线程不安全,查询和修改速度慢,但是增加和删除速度快

Vector: 底层是数组实现,线程安全的,操作的时候使用synchronized进行加锁

使用场景:

  • Vector已经很少用了
  • 增加和删除场景多则用LinkedList
  • 查询和修改多则用ArrayList

二、如果需要保证线程安全,ArrayList应该怎么做,有几种方式

方式一:使用Collections.synchronizedList(synchronized加锁)

List<String> synchronizedList = Collections.synchronizedList(new ArrayList<>());

方式二:使用 CopyOnWriteArrayList(ReentrantLock加锁)

List<String> cowList = new CopyOnWriteArrayList<>();

三、CopyOnWriteArrayList和 Collections.synchronizedList实现线程安全的区别以及它们的使用场景

CopyOnWriteArrayList:执行修改操作时,会拷贝一份新的数组进行操作(add、set、remove等),在执行完修改后将原来集合指向新的集合来完成修改操作,源码里面用ReentrantLock可重入锁来保证不会有多个线程同时拷贝一份数组

使用场景:读高性能,适用读操作,读操作远远大于写操作的场景中使用(因为读的时候是不需要加锁的,直接获取,删除和增加是需要加锁的, 读多写少)

Collections.synchronizedList:线程安全的原因是因为它几乎在每个方法中都使用了synchronized同步锁

使用场景:读操作性能并不如CopyOnWriteArrayList(因为读操作的时候有加锁)

四、CopyOnWriteArrayList的设计思想以及它有什么缺点

设计思想:读写分离+最终一致,读的时候是读旧的数组

缺点:内存占用问题,写时复制机制,内存里会同时驻扎两个对象的内存,旧的对象和新写入的对象,如果对象大则容易发生Yong GC和Full GC

http://www.dtcms.com/wzjs/245085.html

相关文章:

  • 伊春网站推广搜索引擎营销的典型案例
  • 网站技术实现方案凤山网站seo
  • 外贸网站建设制作教程网络推广的方法有
  • 做网站 先备案么线下推广有哪几种渠道
  • 蒙古语网站建设如何在百度发布信息推广
  • 暴雪中国拼多多关键词怎么优化
  • 广安发展建设集团有限公司门户网站在线bt种子
  • 合肥婚恋网站建设seo sem论坛
  • 上海网站空间seo优化标题 关键词
  • 做网站枣庄百度推广登录平台客服
  • 找人做网站上线后被投诉侵权广告软文范例200字
  • 12333网上服务大厅如何做优化排名
  • 山东建设厅证件查询网址seo职业
  • 佛山中小企业网站制作阜平网站seo
  • 网站建设推广专家企业营销策划
  • javascript作业做的网站浏览器谷歌手机版下载
  • 网站建设主题西安seo优化培训机构
  • ui培训哪家机构关键词排名优化易下拉软件
  • 在线设计网站哪个好腾讯企点账户中心
  • 网站开发人员 工资企业推广方式
  • 建设部监理工程师报考网站如何搜索关键词
  • 苏州 手机网站全球搜索引擎网站
  • 网站上面的内容里面放照片怎么做最新国内你新闻
  • 怎么接做网站的任务免费搭建网站的软件
  • wordpress 采集海淀区seo引擎优化多少钱
  • 太原做网络推广海阳seo排名优化培训
  • 免费独立网站建设武汉seo百度
  • 网站建设论文大全seo建站要求
  • 怎么用本机做服务器发布网站广告网络推广
  • 网站建设 首选百川互动郑州百度seo关键词