HashMap与HashTable、ConcurrentHashMap HashMap:线程不安全 在多线程情形下会导致死循环 HashTable:线程安全但是效率低下synchronized保证线程安全弊端 进入等待或轮训场景既不能put也不能get。 ConcurrentHashMap:分段锁 ...
分类:
其他好文 时间:
2020-05-25 15:44:45
阅读次数:
46
关于线程安全一提到可能就是加锁,在面试中也是面试官百问不厌的考察点,往往能看出面试者的基本功和是否对线程安全有自己的思考。 那锁本身是怎么去实现的呢?又有哪些加锁的方式呢? 我今天就简单聊一下乐观锁和悲观锁,他们对应的实现 CAS ,Synchronized,ReentrantLock 正文一个12 ...
分类:
其他好文 时间:
2020-05-24 13:43:50
阅读次数:
224
String 类——字符串常量String的值是不可变的,这就导致每次String的操作都要生成新的String对象,效率低下且浪费内存。 StringBuffer和StringBuild——变化字符串StringBuilder和StringBuffer 的对象能够被多次的修改,并且不产生新的未使用 ...
分类:
其他好文 时间:
2020-05-24 13:32:41
阅读次数:
62
(1)List:有序,可重复。 ArrayList:底层实现的数据结构是数组,查询快,增删慢。线程不安全,效率高 LinkedList:底层实现的数据结构是链表,查询慢,增删块。线程不安全,效率高 Vector:底层实现的数据结构是数组,查绚块,增删慢。线程安全,效率低。 (2)Set:无序,唯一。 HashSet:底层数据结构是哈希表(无序,唯一)。保证元素唯一性依赖于
分类:
其他好文 时间:
2020-05-24 09:35:28
阅读次数:
72
一、Volatile 一段代码引发的思考,下面这段代码,演示了一个使用 volatile 以及没使用volatile 这个关键字,对于变量更新的影响 public class VolatileDemo { public volatile static boolean stop = false; pu ...
分类:
编程语言 时间:
2020-05-23 18:08:59
阅读次数:
48
1、Spring框架有什么好处? 2、BeanFactory和ApplicationContext的区别 3、请解释Bean的生命周期 4、Spring Bean个作用域之间的区别? 5、Spring中的Bean是线程安全的吗? 6、Spring框架中常用的设计模式 7、Spring是怎样处理循环依 ...
分类:
编程语言 时间:
2020-05-21 23:55:59
阅读次数:
90
关于事务,我很不能理解,什么事务隔离级别、事务回滚、锁机制等。而且很让我困惑的是,查了那么多的博客,我依旧没看懂,信心备受打击,决心就算要花很多时间,都要把这些东西弄懂。 DROP TABLE IF EXISTS ; CREATE TABLE ( int(0) NOT NULL AUTO_INCRE ...
分类:
数据库 时间:
2020-05-21 19:06:30
阅读次数:
74
1. String stringbuffer stringbuild 区别 string是字符串,属于常量 一旦声明就不可变; stringbuffer和stringbuild则是可变字符串,buffer线程安全.build线程不安全 2.单例模式几种实现方式?优缺点? 饿汉式(线程安全,调用效率高 ...
分类:
移动开发 时间:
2020-05-21 00:20:57
阅读次数:
79
顶部注释告诉我们的信息 + ArrayList是实现了List接口的可变长数组(ArrayList的底层是基于数组实现的) + ArrayList允许内部存在null元素 + ArrayList除了不是线程安全的之外,和Vector基本差不多。(如果想使用线程安全的ArrayList:List li ...
分类:
其他好文 时间:
2020-05-20 20:13:49
阅读次数:
54
多线程编程中的三个核心概念 原子性 这一点,跟数据库事务的原子性概念差不多,即一个操作(有可能包含有多个子操作)要么全部执行(生效), 要么全部都不执行(都不生效)。 关于原子性,一个非常经典的例子就是银行转账问题:比如A和B同时向C转账10万元。 如果转账操作不具有原子性,A在向C转账时,读取了C ...
分类:
编程语言 时间:
2020-05-19 23:00:26
阅读次数:
98