package com.waibizi.demo04; /** * 懒汉式线程安全写法 * 优点:解决了线程不安全的问题 * 缺点:效率太低了,每个线程在想获得类的实例的时候,执行getInstance()方法都要进行同步,而其实这个方法只执行一次实例化代码就可以了,后面的想获得该类实例的时候 * ...
分类:
编程语言 时间:
2019-12-22 16:23:35
阅读次数:
101
package com.waibizi.demo03; /** * 优点:起到了懒加载的效果,但是只能在单线程的情况下使用 * 缺点:如果是多线程下,一个线程已经进入了if(instance==null) 但是还没来得及实例化,这时候另外一个线程也进入了if(instance==null) ,这时便 ...
分类:
编程语言 时间:
2019-12-22 14:37:21
阅读次数:
98
? 一 我们为什么要学习 java.timeAPI 1. 原先的Date and Calendar 类的api比较复杂,不易于理解,应用起来不是很灵活。 2. Calendar 是个线程不安全的类会导致SimpleDateFormat线程不安全。 3. java.time是JSR 310: Date ...
分类:
编程语言 时间:
2019-12-19 13:05:19
阅读次数:
60
这三个是我们初级开发面试必问面试题 1.List接口(有序) ArrayList:基于数组,增删慢,查找快,线程不安全,应该是开发中最常用到的 LinkedList:基于链表,增删快,查找慢,线程不安全 图中还缺少Vector,也是基于数组,线程安全,效率低。 2.Set接口 HashSet:快速定 ...
分类:
其他好文 时间:
2019-12-17 13:17:45
阅读次数:
137
众所周知,单例模式分为饿汉式和懒汉式,昨天在看了《spring5核心原理与30个类手写实战》之后才知道饿汉式有很多种写法,分别适用于不同场景,避免反射,线程不安全问题。下面就各种场景、采用的方式及其优缺点介绍。 饿汉式 (绝对的线程安全) 代码示例 1.第一种写法 ( 定义即初始化) 2. 第二种写 ...
分类:
编程语言 时间:
2019-12-16 19:08:43
阅读次数:
106
前言: 有序列表,允许存放重复的元素;实现类: ArrayList:数组实现,查询快,增删慢,轻量级;(线程不安全) LinkedList:双向链表实现,增删快,查询慢 (线程不安全) Vector:数组实现,重量级 (线程安全、使用少) Stack:对象栈,遵循先进后出的原则。 一、ArrayLi ...
分类:
编程语言 时间:
2019-12-15 21:48:38
阅读次数:
88
ArrayList类在多线程环境下是线程不安全的,在多线程读写情况下会抛出并发读写异常(ConcurrentModificationException): 1 import java.util.ArrayList; 2 import java.util.List; 3 import java.uti ...
分类:
编程语言 时间:
2019-12-10 22:26:07
阅读次数:
125
上面的BaseController中使用ModelAttribute注解来获取request和response对象,这样基类继承该类,想要获取对象直接可以拿到,虽然这样很简便,但是这里会产生线程不安全问题,在并发量大的情况下,获取的对象可能是同一个对象,或者为null,这些都是并发造成的问题 分析: ...
分类:
编程语言 时间:
2019-12-09 13:44:32
阅读次数:
107
1、基本介绍 单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供-一个取得其对象实例的方法(静态方法)。如:一般情况下,数据库的连接 2、创建方式: 1)饿汉式(静态常量)2)饿汉式 (静态代码块)3)懒汉式(线程不安全)4)懒汉式(线程安全, 同步 ...
分类:
编程语言 时间:
2019-12-06 13:33:53
阅读次数:
77
Map类的区别 Map类有:HashMap,LinkedHashMap,TreeMap HashMap中k的值没有顺序,常用来做统计,key和value可以为空,同时是线程不安全的,存入和输出的数据,顺序可能发生变化。 2.LinkedHashMap吧。它内部有一个链表,保持Key插入的顺序。迭代的 ...
分类:
编程语言 时间:
2019-12-03 19:34:43
阅读次数:
76