标签:volatile

Java

折腾Java设计模式之单例模式

likai 发布于 2019-04-26

Ensure a class has only one instance, and provide a global point of access to it. 一个类仅仅只有一个实例,并且提供全局的接入点。简洁点理解就是涉及到一个单一的类,该类负责创建自己的对象,同时确保只有...

阅读(6)评论(0)赞 (0)

Java

死磕 java集合之PriorityBlockingQueue源码分析

1

Harries 发布于 2019-04-26

PriorityBlockingQueue是java并发包下的优先级阻塞队列,它是线程安全的,如果让你来实现你会怎么实现它呢? 还记得我们前面介绍过的PriorityQueue吗?点击链接直达【 死磕 java集合之PriorityQueue源码分析 】 还记得优先级队列一般使用...

阅读(8)评论(0)赞 (0)

Java

Java单例模式实现

小丁 发布于 2019-04-25

单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好、用对单例模式,还真得费一番脑筋。本文对Java中常见的单例模式写法做了一个总结,如有错漏之处,恳请读者指正。 饿汉法 顾名思义,饿汉法就是在第一次引用该类的时候就创建对象实例,而不管实际是否需要创建。代码如下: p...

阅读(12)评论(0)赞 (0)

Java

【开发小记】 Java 线程池 之 被“吃掉”的线程异常(附源码分析和解决方法)

1

yanxinchi 发布于 2019-04-24

前言 今天遇到了一个bug,现象是,一个任务放入线程池中,似乎“没有被执行”,日志也没有打。 经过本地代码调试之后,发现在任务逻辑的前半段,抛出了 NPE ,但是代码外层没有 try-catch ,导致这个异常被吃掉。 这个问题解决起来是很简单的,外层加个 try-catch 就...

阅读(16)评论(0)赞 (0)

Java

CAS导致的ABA问题及解决

1

xirruiqiang 发布于 2019-04-24

在并发问题中,最先想到的无疑是互斥同步,但线程阻塞和唤醒带来了很大的性能问题,同步锁的核心无非是防止共享变量并发修改带来的问题,但不是任何时候都有这样的竞争关系。 什么是CAS CAS,比较并交换(Compare-and-Swap,CAS),如果期望值和主内存值一样,则交换要更新...

阅读(9)评论(0)赞 (0)

Spring

京东面试真题,被问到这些,我也是醉了

songhua.gao 发布于 2019-04-24

←←←←←←←←←←←← 快!点关注 前言 前几天了前公司带的一个新人聊了一会,说了一下他在京东的的面试经历,我感觉挺不错的,就和大家分享一下: 工作两年有余,本人第一份工作是在一家外包公司,第二份工作是在一家做SAAS平台的公司,第一家公司让我入门,进入了软件开发的行业,了解了...

阅读(9)评论(0)赞 (0)

Java

深入理解Java——ConcurrentHashMap源码的分析(JDK1.8)

1

likai 发布于 2019-04-24

←←←←←←←←←←←← 快!点关注 一、前提 在阅读这篇博客之前,希望你对HashMap已经是有所理解的,如果你对java的cas操作也是有一定了解的,因为在这个类中大量使用到了cas相关的操作来保证线程安全的。 二、概述 ConcurrentHashMap这个类在java.l...

阅读(13)评论(0)赞 (0)

Java

Java多线程之Executor框架和手写简易的线程池

1

xiaoli.wang 发布于 2019-04-24

线程池 什么是线程池 线程池一种线程使用模式,线程池会维护多个线程,等待着分配可并发执行的任务,当有任务需要线程执行时,从线程池中分配线程给该任务而不用主动的创建线程。 线程池的好处 如果在我们平时如果需要用到线程时,我们一般是这样做的:创建线程(T1),使用创建的线程来执行任务...

阅读(11)评论(0)赞 (0)

Java

能看懂的字节码-下

36

尖兵 发布于 2019-04-24

上一篇看得懂的字节码讲了怎么看字节码,以及字节码中的魔数、版本号和常量池部分,这篇文章接着字节码顺序往下将。请一定要看了上一篇之后再看这一篇,因为有绝对的逻辑关系,不看上一篇这篇基本看不懂。 如果这篇文章中有我没有讲到怎么出现的东西,(比如程序的代码,javap工具,查看字节码的...

阅读(12)评论(0)赞 (0)

Java

Java基础之CopyOnWriteArrayList

2

尖兵 发布于 2019-04-24

前言 今天我们来学习一下CopyOnWriteArrayList这个比ArrayList更安全的集合,同时带着以下几个问题去分析源码。 CopyOnWriteArrayList如何保证线程安全? CopyOnWriteArrayList有什么优缺点吗? CopyOnWriteAr...

阅读(13)评论(0)赞 (0)

Java

从单例模式到HappensBefore 原 荐

dulong 发布于 2019-04-24

目录 双重检测锁的演变过程 利用HappensBefore分析并发问题 无volatile的双重检测锁 双重检测锁的演变过程 synchronized修饰方法的单例模式 双重检测锁的最初形态是通过在方法声明的部分加上synchronized进行同步,保证同一时间调用方法的线程只有...

阅读(8)评论(0)赞 (0)

Java

面试官:谈谈读写锁–ReadWriteLock

xiaoli.wang 发布于 2019-04-20

今天来说说Java 的读写锁-ReadWriteLock,ReadWriteLock是一个接口,实现类是ReentrantReadWriteLock,看着名字的翻译就是可重入读写锁。 为什么Java会搞了那么多种类的锁,因为不同的场景需要做不同的适配来达到性能和使用的最优,而读写...

阅读(8)评论(0)赞 (0)

Java

手撸lombok

Harries 发布于 2019-04-20

拥抱 lombok,它会帮助我们解决一些让我们很烦躁的问题 去掉 Setter 和 Getter @Setter @Getter public class UserDTO { @NotNull private String username; @NotNull private i...

阅读(16)评论(0)赞 (0)

Java

多线程基础之synchronized和volatile

2

邓龙华 发布于 2019-04-19

多线程安全三大特性: (1)原子性: 指一系列操作要么一起执行完成,要么一起不执行。例如i++操作其实并不是原子的,线程需要先获取到i的值然后在线程内存中对i的值进行+1再刷新到主内存中,在这个期间可能有别的线程对i的值进行了修改,这样得出的结果就是错误的,所以我们需要同步锁Sy...

阅读(30)评论(0)赞 (0)

Java

遗憾的Android实习生面试

xiaoli.he 发布于 2019-04-19

面的是字节跳动日常实习岗,面试体验挺好的,挺有效率的。不过实力也是运气的一部分,三面面试官对计算机基础要求高,由于大二目前还没有开课,也没有对操作系统和计网进行自学,只有简单了解,怪自己没有花更多的时间去自学。最后止步于三面还是挺可惜的,大二如果能找到一个实习还是挺棒的体验。 一...

阅读(23)评论(0)赞 (0)

Java

MyBatis 解析运行原理

xiaoli.he 发布于 2019-04-18

提供一个接口 package com.ming.MyBatis; import com.ming.MyBatis.POJO.Role; import com.ming.MyBatis.POJO.Student; import com.ming.MyBatis.POJO.Stude...

阅读(29)评论(0)赞 (0)

Java

Java虚拟机08——Java内存模型与线程

6

songhua.gao 发布于 2019-04-18

绝大多数的运算任务都不可能只靠处理器“计算”就能完成,处理器至少要与内存交互,如读取运算数据、存储运算结果等。由于计算机的存储设备与处理器的运算速度有接数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的...

阅读(22)评论(0)赞 (0)

Java

Java虚拟机08——Java内存模型与线程

6

zhuangli 发布于 2019-04-18

绝大多数的运算任务都不可能只靠处理器“计算”就能完成,处理器至少要与内存交互,如读取运算数据、存储运算结果等。由于计算机的存储设备与处理器的运算速度有接数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的...

阅读(36)评论(0)赞 (0)