SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个SimpleDateFormat实例对日期进行解析、格式化都会导致程序出错,接下来就讨论下它为何是线程不安全的,以及如何避免。 问题复现 编写测试代码如下: ...
分类:
编程语言 时间:
2019-08-15 22:50:56
阅读次数:
114
问题描述: 1、系统偶发性抛出异常:java.lang.NumberFormatException: multiple points ,追溯源头抛出的类为:SimpleDateFormat 问题的定位: 1、总所周知,SimpleDateFormat是非线程安全的类。由此可以推断:在多线程环境下,需 ...
分类:
编程语言 时间:
2019-08-14 12:32:51
阅读次数:
77
1、线程安全性: 线程安全:String、StringBuffer 线程不安全:StringBulider 2、执行效率 StringBulider最快,Stringbuffer次之,String最差 3、存储空间 String的对象一旦创建就不能改变,是一个常量,对String操作后会生成新的St ...
分类:
其他好文 时间:
2019-08-13 22:42:29
阅读次数:
100
抢票案例:publicclassn{publicstaticvoidmain(String[]args)throwsInterruptedException{webwb=newweb();newThread(wb,"a").start();newThread(wb,"b").start();newThread(wb,"c").start();}}classwebimplementsRunnable
分类:
编程语言 时间:
2019-08-13 12:07:49
阅读次数:
85
1.HashMap可以存放null HashTable不能存放null 2.HashMap是线程不安全的 HashTable是线程安全的 StringBuffer 是线程安全的 StringBuilder 是非线程安全的 所以当进行大量字符串拼接操作的时,如果是单线程就用StringBuilder, ...
分类:
编程语言 时间:
2019-08-09 15:24:56
阅读次数:
109
java2 开始 HashTable 接口被改进成实现Map接口 共同点 : 底层都是Hash 算法 都是双列集合 不同点 :HashMap 是线程不安全的 效率更高 HashTable 是线程安全的 HashMap 可以存储 null key 和 null value ...
分类:
其他好文 时间:
2019-08-08 00:47:53
阅读次数:
136
List 是有序、可重复的容器。List中每个元素都有索引标记,可以根据元素的索引标记访问元素,从而精确控制这些元素。 List 接口常用的实现类:ArrayList、LinkedList、Vector。 ArrayList 底层是用数组实现。特点:查询效率高,增删效率低,线程不安全。增删操作较多的 ...
分类:
其他好文 时间:
2019-08-07 14:44:49
阅读次数:
106
下面这样写法是Vector线程不安全的写法: 尽管Vector get()、remove()、get() 方法是I同步的 但运行上面程序会出现以下错误: HashTable线程不安全写法: 会出现很多null值,但不错,因为没有那个key ,但不会报错 在多线程环境中,如果不在方法调用端做额外的同步 ...
分类:
编程语言 时间:
2019-08-06 00:23:20
阅读次数:
107
LinkedList: getFirst() getLast() addFirst() addLast() removeFirst() removeLast() get(index) 查找,慢 ArrayList: 底层数据结构是数组,查询快,增删慢。 线程不安全,效率高。 LinkedList: ...
分类:
其他好文 时间:
2019-08-05 21:56:00
阅读次数:
118
String String变量是不可变的,源码里面用了final修饰。 StringBuilder线程不安全,但效率高,常用。 StringBuffer线程安全,但效率低。 ...
分类:
编程语言 时间:
2019-08-05 20:42:51
阅读次数:
130