- 博客(4)
- 收藏
- 关注
原创 一文简单了解八种单例模式
一文简单了解八种单例模式1、饿汉式(静态常量)[可用]2、饿汉式(静态代码块)[可用]3、懒汉式(线程不安全)[不可用]4、懒汉式(线程安全,同步方法)[不推荐使用]5、懒汉式(线程不安全,同步代码块)[不可用]6、双重检查[推荐使用]7、静态内部类[推荐使用]8、枚举类[推荐使用]八种单例模式的小结:各种写法的使用场合:面试常见问题:首先我们通过单例模式的作用来看为什么会出现单例模式。单例模式的出现可以节省内存和计算、保证结果正确、方便管理。其主要适用于:无状态的工具类(日志类等提供的服务都是一样的
2020-07-31 21:45:44 138
原创 多角度简单解析synchronize关键字
这里写自定义目录标题Synchronized简介作用不使用synchronize的后果两种用法对象锁类锁多线程访问同步方法的7种情况Synchronized的性质Synchronized原理加锁和释放锁的原理可重入原理保证可见性原理Synchronized的缺陷常见面试问题Synchronized简介作用保证在同一时刻最多只有一个线程执行该段代码,以达到并发安全的效果。其主要通过拿到锁来保证执行代码块的线程唯一性,只有拿到锁的线程才能执行synchronize中的代码。不使用synchronize的
2020-07-27 20:30:59 223
原创 IDEA调试技巧--看线程生命周期
线程共有6个生命周期状态:new、runnable、wait、block、time_wait、terminal。我们可以使用IDEA工具对每个线程状态进行debug调试获取,具体操作如下:1、首先在代码块中打上断点2、右击断点可以选择需要停下的线程:3、选择需要查看状态的线程(IDEA会帮附上对应状态,但是有些并不是多线程的状态):4、执行获取状态的代码操作:...
2020-07-27 20:30:05 4689
原创 记录一次大公司面试题
Arratlist 和 Linkedlist区别Arratlist 扩容HashMap底层HashMap扩容介绍一下HashMap 2次幂的原因MySQL怎么优化MySQL中explain查询出的字段有哪些,介绍一下用过分页吗,介绍一下使用的分页千亿数据怎么分页说一下间隙锁间隙锁怎么用redis有哪些常用的数据结构redis用了哪些结构其他nosql数据结构了解吗redis的持久化介绍一下redis集群怎么用,怎么保证数据一致介绍SpringCloudzuul你是怎么使用的
2020-07-03 16:35:19 254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人