1、ThreadLocal 在写Spring对事务的支持之前要先了解一下ThreadLocal,当多个线程访问同一个成员变量时,如果这个变量不做处理,那肯定会造成线程不安全的问题啊。使用ThreadLocal就可以解决这个问题,ThreadLocal为每一个线程创建变量的一个副本,这样线程操作的其实 ...
分类:
编程语言 时间:
2017-11-13 18:17:25
阅读次数:
193
1. String、StringBuffer和StringBuilder的区别。 (1) String:存储数值不可改变的字符串 (2) StringBuffer:可变字符序列、线程安全、效率低 (3) StringBuilder:可变字符序列、线程不安全、效率高 2. final, finally ...
分类:
编程语言 时间:
2017-11-13 00:25:52
阅读次数:
192
相同点:两者的功能都是相同的,没有任何差别。 不同点:StringBulider 不是同步的,也是线程不安全的,当使用多线程处理缓冲区时,不能使用。但是单线程访问的时候效率高,如果是单线程处理缓冲区资源的话,建议使用StringBulider; StringBuffer 是同步的,多线程处理时是安全 ...
分类:
其他好文 时间:
2017-11-11 22:15:33
阅读次数:
200
所谓一个数据的线程安全,简单点来说就是这块数据即使有多个线程同时读写,也不会出现数据的错乱,内存的最后状态总是可以预见的,如果这块内存的数据被一个多线程读写之后,出现的结果是不可预见的,那么就可以说这块内存是“线程不安全的” 其实这个状态很容易理解,同一个箱子,有的人在里面放球,有的人从里面拿,如果 ...
分类:
其他好文 时间:
2017-11-06 17:55:56
阅读次数:
229
1.垃圾回收 是回收的空闲堆空间 只有在cpu空闲并且堆空间不足的情况下才回收 2.threadlocal 就是为线程的变量都提供了一个副本,每个线程运行都只是在更新这个副本。 Threadlocal可以解决线程不安全的情况,比如说SimpleDateFormat ThreadLocal和Synch ...
分类:
编程语言 时间:
2017-11-02 21:14:12
阅读次数:
189
问题描述 使用synchronized在一个非final对象上加了锁之后,在synchronized体(同步代码块)中,将该对象的值(状态)改变之后,会导致线程不安全,即其他线程会拿到改变之后对象的锁,从而进入同步代码块。 场景设计 场景说明 两个线程a1,a2,访问同一个AAA对象aaa(临界资源 ...
分类:
编程语言 时间:
2017-11-01 18:51:04
阅读次数:
167
1.请讲下Java里面的容器 集合Collection有两种: List:元素是有序的,元素可以重复,因为该集合体有索引 ArrayList: 底层数据结构是数组,查询快,增删慢。 线程不安全,效率高。 当元素放满了后,以原长度的50%+1的长度加长集合容器的长度。 Vector: 底层数据结构是数 ...
分类:
其他好文 时间:
2017-11-01 17:52:53
阅读次数:
245
Java学习这么久,打算这几天回顾下java的基本知识点,首先是集合。 一、常用集合类关系图 Collection |___List 有序,可重复 |___ArrayList 底层数据结构是数组,增删慢,查询快;线程不安全,效率高 |___LinkedList 底层数据结构是链表,增删快,查询慢;线 ...
分类:
编程语言 时间:
2017-10-12 19:00:59
阅读次数:
277
StringBuilder是线程不安全的类。 StringBuffer是线程安全的,因为它里面的方法加了synchronized。 今天写了一段代码测试了一下:用循环开启10个线程,调用StringBuffer(StringBuilder)的append追加1 到 10 。 结果预期一样:线程不安全 ...
分类:
其他好文 时间:
2017-10-09 22:45:21
阅读次数:
220
转载出处:http://cantellow.javaeye.com/blog/838473 第一种(懒汉,线程不安全): 1 public class Singleton { 2 private static Singleton instance; 3 private Singleton (){} ...
分类:
编程语言 时间:
2017-10-05 18:03:16
阅读次数:
257