一:string是不可变的。stringbuffer是拼接字符串线程安全的。stringbuilder线程不安全 二:stringbuffer和stringbuilder底层是char或byte(jdk9)数组,构建初始长度是16. 三:jvm会将所有的字符串缓存起来。当调用“”.intern()方 ...
分类:
其他好文 时间:
2018-11-20 19:39:05
阅读次数:
147
一、背景: 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下 ...
分类:
编程语言 时间:
2018-11-20 16:19:44
阅读次数:
188
对字符串修改时,用到StringBuffer&StringBuilder,能够多次修改对象并且不产生新的未使用对象 StringBuilder线程不安全(不能同步访问),速度有优势,多数情况下建议使用 方法: (特有) 1.append(s):字符串拼接 2.reverse():反转 3.delet ...
分类:
其他好文 时间:
2018-11-17 10:33:46
阅读次数:
175
一、多线程不安全方式实现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public sealed class SingleInstance { private static SingleInstance instance; private SingleInstanc ...
Collection 单列集合的根接口 List 特点 有序 有索引 元素可重复 ArrayList 底层数据是数组 查询快 增删慢 线程不安全 效率高 LinkedList 底层数据是链表 查询慢 增删快 线程不安全 效率高 Vector 底层数据是数组 查询快 增删慢 线程安全 效率低 Set ...
分类:
其他好文 时间:
2018-11-15 18:36:31
阅读次数:
137
首先,先给出结论,静态变量在多线程的情况下是会出现安全的问题的,下面上代码验证: 验证思路,通过两个线程去a++,最后结果应该是2000,否则就是线程不安全的; java public class TestStatic { public static int a=0; public static v ...
分类:
其他好文 时间:
2018-11-10 21:16:41
阅读次数:
174
1.速度 2. 线程安全 在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的 如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的,但Stri ...
分类:
其他好文 时间:
2018-11-10 17:52:06
阅读次数:
199
用下面这种方式来代替SimpleDateFormat,因为它是线程不安全的. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); System.out.println(formatter.... ...
Java中的常用类2 集合 数组与集合的区别: 1、数组长度固定,集合长度可变。 2、数组可以存储基本数据类型,集合只能存储对象。 集合类的结构图以及相关特点: Collection |--List 有序,可重复 |--ArrayList 底层数据结构是数组,查询快,增删慢。 线程不安全,效率高 | ...
分类:
编程语言 时间:
2018-11-05 11:21:17
阅读次数:
210
同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程不安全的,就是不同步的 数据增长:当需要增长时,Vector默认增长为原来的一倍,而ArrayList是原来的50%,这样ArrayList就能节省内存空间 说明:如果涉及到堆栈,队列等操作应该考虑vectory,如果需要 ...
分类:
其他好文 时间:
2018-10-23 00:10:26
阅读次数:
175