深入剖析java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue

阻塞队列概要 阻塞队列与我们平常接触的普通队列(LinkedList或ArrayList等)的最大不同点,在于阻塞队列支出阻塞添加和阻塞删除方法。 阻塞添加 所谓的阻塞添加是指当阻塞队列元素已满时,队列会阻塞加入元素的线程,直队列元素不满时才重新唤醒线程执行元素加入操作。 阻塞删除 阻塞删除是指在队列元素为空时,删除队列元素的线程将被阻塞,直到队列不为空再执行删除操作(一般都会返回被删除...
阅读(2831) 评论(6)

剖析基于并发AQS的共享锁的实现(基于信号量Semaphore)

上篇文章通过ReetrantLock分析了独占锁模式的实现原理,即基于AQS同步框架,本篇打算从Semaphore入手分析共享锁模式的实现原理,与独占锁模式不同的是,共享锁模式允许同一个时刻多个线程可获取同步状态。本篇的思路是先说明Semaphore的基本用法,再通过Semaphore的内部实现原理分析共享锁的实现,实际上其内部也是基于AQS同步器实现的,在稍后我们将会看到这事实。如果想了解独占锁模式在AQS内部的实...
阅读(4949) 评论(6)

深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理

在阅读本篇博文前,建议有CAS知识储备,因为关于CAS的操作在ReetrantLock的实现原理中可是随处可见,如没有了解过CAS可以先看博主的另一篇博文【Java并发编程-无锁CAS与Unsafe类及其并发包Atomic】,以下是本篇的主要内容 Lock接口 重入锁ReetrantLock 并发基础组件AQS与ReetrantLock AQS工作原理概要 基于ReetrantLock分析AQS独占模式实现过程...
阅读(29565) 评论(16)

Java并发编程-无锁CAS与Unsafe类及其并发包Atomic

在前面一篇博文中,我们曾经详谈过有锁并发的典型代表synchronized关键字,通过该关键字可以控制并发执行过程中有且只有一个线程可以访问共享资源,其原理是通过当前线程持有当前对象锁,从而拥有访问权限,而其他没有持有当前对象锁的线程无法拥有访问权限,也就保证了线程安全。但在本篇中,我们将会详聊另外一种反向而行的并发策略,即无锁并发,即不加锁也能保证并发执行的安全性。 本篇的思路是先阐明无锁执行者CAS的核心算法原...
阅读(6186) 评论(6)

深入理解Java类加载器(ClassLoader)

本篇博文主要是探讨类加载器,同时在本篇中列举的源码都基于Java8版本,不同的版本可能有些许差异。主要内容如下 类加载的机制的层次结构 启动Bootstrap类加载器 扩展Extension类加载器 系统System类加载器 理解双亲委派模式 双亲委派模式工作原理 双亲委派模式优势 类加载器间的关系 类与类加载器 类与类加载器 了解class文件的显示加载与隐式加载的概念 编写自己的类加载器 自定义File类加载器...
阅读(10278) 评论(13)

全面理解Java内存模型(JMM)及volatile关键字

本篇主要结合博主个人对Java内存模型的理解以及相关书籍内容的分析作为前提,对JMM进行较为全面的分析,本篇的写作思路是先阐明Java内存区域划分、硬件内存架构、Java多线程的实现原理与Java内存模型的具体关系,在弄明白它们间的关系后,进一步分析Java内存模型作用以及一些必要的实现手段,以下是本篇主要内容...
阅读(8410) 评论(33)

深入理解Java并发之synchronized实现原理

synchronized的三种应用方式 synchronized作用于实例方法 synchronized作用于静态方法 synchronized同步代码块 synchronized底层语义原理 理解Java对象头 synchronized代码块底层原理 synchronized方法底层原理 Java虚拟机对synchronized的优化 偏向锁 轻量级锁 自旋锁 锁消除 关于synchronized 可能需要了解的关...
阅读(30302) 评论(20)

深入理解Java注解类型(@Annotation)

java注解是在JDK5时引入的新特性,鉴于目前大部分框架(如Spring)都使用了注解简化代码并提高编码的效率,因此掌握并深入理解注解对于一个Java工程师是来说是很有必要的事。本篇我们将通过以下几个角度来分析注解的相关知识点 理解Java注解 基本语法 声明注解与元注解 注解元素及其数据类型 编译器对默认值的限制 注解不支持继承 快捷方式 Java内置注解与其它元注解 注解与反射机制 运行时注解处理器...
阅读(19216) 评论(16)

深入理解Java枚举类型(enum)

本篇主要是深入对Java中枚举类型进行分析,主要内容如下: 理解枚举类型 枚举的定义 枚举实现原理 枚举的常见方法 Enum抽象类常见方法 编译器生成的Values方法与ValueOf方法 枚举与Class对象 枚举的进阶用法 向enum类添加方法与自定义构造函数 关于覆盖enum类方法 enum类中定义抽象方法 enum类与接口 枚举与switch 枚举与单例模式 EnumMap使用及其原理 EnumSet使用及原...
阅读(10883) 评论(7)

深入理解Java类型信息(Class对象)与反射机制

本篇主要是深入对Java中的Class对象进行分析,这对后续深入理解反射技术非常重要,这篇有点偏向内功类文章,主要内容如下: 深入理解Class对象 RRTI的概念以及Class对象作用 Class对象的加载及其获取方式 Class对象的加载 ClassforName方法 Class字面常量 理解泛化的Class对象引用 关于类型转换的问题 instanceof 关键字与isInstance方法 深入理解反射技术...
阅读(16691) 评论(16)

MySQL的进阶实战篇

进阶实战篇 mysql视图机制 什么是视图 视图创建与使用 视图的本质 高效索引 使用索引的理由 索引的创建及其基本类型 单列索引 复合索引 唯一索引 主键索引 索引的设计 存储过程 为什么需要存储过程 存储过程的创建与使用 输入输出参数类型 删除存储过程 查看存储过程的状态 查看存储过程的创建语句 存储过程的流程控制语句 定义变量 使用DECLARE定义局部变量 了解其他类型的变量 使用DECLARE 定义条件和处...
阅读(10240) 评论(16)

MySQL的初次见面礼基础实战篇

基础实战篇 环境准备 数据库与表的创建以及SQL增删改查 数据库和表的创建与删除 表的创建与删除 外键的约束 数据类型 数字数据类型 日期和时间类型 字符串类型 表的增删改查操作 增删改 变化多端的查询 过滤条件 - WHERE NULL 操作符 LIKE 操作符 BETWEEN 操作符 IN 操作符 多条件组合AND 和 OR 操作符 对查询结果排序 ORDER BY 获取指定行数的数据-LIMIT 数据分组-GR...
阅读(6713) 评论(10)

关于 Spring AOP (AspectJ) 你该知晓的一切

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54629058 出自【zejian的博客】 关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切本篇是年后第一篇博文,由于博主用了不少...
阅读(14841) 评论(24)

关于Spring IOC (DI-依赖注入)你需要知道的一切

【版权申明】未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54561302 出自【zejian的博客】 《Spring入门经典》这本无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC ,这篇博文...
阅读(16369) 评论(25)

java数据结构与算法之平衡二叉树(AVL树)的设计与实现

【版权申明】未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/53892797 出自【zejian的博客】 关联文章:java数据结构与算法之顺序表与链表设计与实现分析 java数据结构与算法之双链表设计与实现 java数据结构与算法之改良顺序表与双链表类似ArrayList和L...
阅读(5442) 评论(6)
64条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:535539次
    • 积分:5415
    • 等级:
    • 排名:第5264名
    • 原创:64篇
    • 转载:0篇
    • 译文:0篇
    • 评论:407条
    联系我
    邮箱:shinezejian@163.com
    友谊链接
    最新评论