自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 JUC源码解析-阻塞队列-LinkedBlockingQueue与ArrayBlockingQueue

什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是: 在队列为空时,获取元素的线程会阻塞等待,直到队列变为非空或超时。 当队列满时,存储元素的线程会等待队列可用。 阻塞队列常用于生产者和消费者的场景。 阻塞队列提供了四种处理方法: 抛出...

2019-02-28 23:13:07

阅读数 23

评论数 0

原创 JUC源码解析-阻塞队列-迭代器(二)

4,删除remove public void remove() { // assert lock.getHoldCount() == 0; final ReentrantLock lock = ArrayBlockingQueue.t...

2019-02-28 16:56:02

阅读数 56

评论数 0

原创 JUC源码解析-阻塞队列-迭代器(一)

本篇来分析下阻塞队列里迭代器的实现,以ArrayBlockingQueue源码来分析。 首先在开始前想一想,如何实现阻塞队列的迭代器功能? 在并发下有些线程在读,有些在改,还有些在使用迭代器遍历,怎么确保安全性?用独占锁将这些操作隔离开,我们看 ArrayBlockingQueue 确实是这么做的...

2019-02-28 16:55:41

阅读数 52

评论数 0

原创 MySQL练习题记录

题目来自Leetcode Swap Salary 只用一个 SQL 查询,将 sex 字段反转 UPDATE salary SET sex = CHAR ( ASCII(sex) ^ ASCII( 'm' ) ^ ASCII( 'f' ) ); UPDATE salary SET ...

2019-02-27 03:50:19

阅读数 86

评论数 0

原创 Java内存区域与对象

本片文章主要是《深入理解Java虚拟机》的读书笔记 1 运行时数据区域 1.1 程序计数器 由于在JVM中,多线程是通过线程轮流切换来获得CPU执行时间的,因此,在任一具体时刻,一个CPU的内核只会执行一条线程中的指令,因此,为了能够使得每个线程都在线程切换后能够恢复在切换之前的程序执行位置,每...

2019-02-22 16:46:49

阅读数 30

评论数 0

原创 由入栈/出栈序列求所有出栈/入栈序列

给出一个数组,代表入栈顺序,求所有出栈可能性? 给出一个数组,代表出栈顺序,求所有入栈可能性? 这两题解法相同,可利用 全排列 求出所有组合,再进行可能性分析。 全排列代码如下: public List<List<Integer&...

2019-02-21 00:34:11

阅读数 71

评论数 0

原创 SpringMVC之DispatcherServlet(一)

上一篇介绍了ContextLoaderListener,作用就是容器启动时创建WebApplicationContext存储在ServletContext中。本文将介绍SpringMVC核心DispatcherServlet,它是Servlet接口的实现类 Servlet是一个Java编写的程序...

2019-02-18 14:25:48

阅读数 45

评论数 0

原创 LeetCode动态规划题

斐波那契数列类 LeetCode70. Climbing Stairs 题目描述:有 N 阶楼梯,每次可以上一阶或者两阶,求有多少种上楼梯的方法。 dp[ i ] = dp[ i-1 ] + dp[ i-2 ]; public int climbStairs(int n) { if (n...

2019-02-12 17:12:36

阅读数 37

评论数 0

原创 SpringMVC之ContextLoaderListener

ContextLoaderListener的作用就是启动Web容器时自动装配ApplicationContext的配置信息。它实现了ServletContextListener接口,在web.xml中配置这个监听器,启动容器时就会执行它的实现类。 对于ServletContextListener,...

2019-02-12 12:27:10

阅读数 183

评论数 0

原创 spring事件发布机制

关于Java的事件监听机制 Spring事件机制是观察者模式的一种实现,但是除了发布者和监听者者两个角色之外,还有一个EventMultiCaster的角色负责把事件转发给监听者。 观察者模式 Spring的事件监听(也称事件驱动)是观察者模式的一种实现,比较常见的有发布-订阅模型。通常我们利用消...

2019-02-08 06:28:32

阅读数 76

评论数 0

转载 java事件监听机制

java 事件机制 java的事件机制一般包括三个部分:EventObject,EventListener和Source。 EventObject java.util.EventObject是事件状态对象的基类,它封装了事件源对象以及和事件相关的信息。所有java的事件类都需要继承该类。 Even...

2019-02-07 10:56:07

阅读数 21

评论数 0

原创 java.lang.Class.isPrimitive()

用来判断Class是否为基本数据类型,有九种预定义的Class对象代表的八个基本类型和void。这些都是由Java虚拟机创建的,并且具有相同的名称,它们代表即boolean, byte, char, short, int, long, float, 和double 等原始类型。 public st...

2019-02-04 07:57:23

阅读数 43

评论数 0

原创 Java-SPI

SPI即Service Provider Interface,Service提供者接口:提供给服务提供厂商与扩展框架功能的开发者使用的接口。 java spi提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。 很...

2019-02-01 17:33:34

阅读数 59

评论数 0

提示
确定要删除当前文章?
取消 删除