并发与高并发课程学习笔记(6)

1.StringBuilder->StringBuffer

StringBuilder线程不安全,StringBuffer线程安全

但是后者引入同步锁导致性能没有前者高,所以在堆栈封闭的情况下推荐用StringBuilder

2.SimpleDateFormate->JodaTime

SimpleDateFormate

线程不安全,因此想要在多线程环境下使用需要满足线程封闭原则, 因此SimpleDateFOrmate需要每次都新建一个实例

SimpleDateFormatsimpleDateFormat =new SimpleDateFormat("yyyy:MM:dd");

JodaTime

DateTimeFormattersimpleDateFormat = DateTimeFormat.forPattern("yyyyMMdd");

---------------------------------------------------------------------------------------------------------------------------

同步容器(同步容器性能并不高,而且不能做到完全的线程安全,因此推荐使用并发容器)

1.ArrayList -> Vector,Stack

Vectorlist =new Vector<>(); //使用Vector如果只是添加,查看那么能够保证线程安全,但是如果有删除操作,则可能会报错

for(Integer i: vector){

if (i.equals(3)) {

vector.remove(i);

}

}

Iterator iterator = vector.iterator();

while(iterator.hasNext()){

Integer i = iterator.next();

if(i.equals(3)){

vector.remove(i);

}

}

for(int i=0;i<vector.size();i++){

if(vector.get(i).equals(3)){

vector.remove(i);

}

}

foreach和iterator在遍历过程中有删除操作,均会报错,因此推荐使用for循环

2.HashMap -> HashTable(key,value不能为null)

3.Collections.synchronizedXXX(List, Set, Map)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,119评论 18 399
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,618评论 0 4
  • 本系列出于AWeiLoveAndroid的分享,在此感谢,再结合自身经验查漏补缺,完善答案。以成系统。 Java基...
    济公大将阅读 1,643评论 1 6
  • 尝试到自律带来的甜丝丝的感觉,要从做饭开始。 从小就不喜欢做家务,觉得做家务就是不成功,所以,如果要干活,我一般都...
    yc辰苑阅读 580评论 0 0
  • 基本概念 客户端(Client):移动应用(iOS、android等应用) 服务器(Server):为客户端提供服...
    Ths阅读 3,861评论 0 0

友情链接更多精彩内容