自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

徐刘根的博客

欢迎关注微信公众号:Java后端技术(ID:JavaITWork),和20万人一起学习Java!

  • 博客(14)
  • 资源 (44)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java多线程编程-(17)-多线程异步调用之Future模式

一、线程计数器回顾在《Java多线程编程-(6)-两种常用的线程计数器CountDownLatch和循环屏障CyclicBarrier》 这一篇中,我们使用线程计数器的方式实现了在主线程中等待计数的线程执行完之后在执行阻塞等待之后的代码。看段代码回顾一下:public class SummonDragonDemo { private static final int THREAD_COUNT

2017-10-30 10:27:27 16986 3

原创 Java多线程编程-(16)-等待/通知模式接口Condition接口深入分析

前几篇:Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析Java多线程编程-(15)-读写锁ReentrantReadWriteLock深入分析一、Condition接口简介在上述两篇文章中讲解AQS的时候,我们已经知道了同步队列AQS的内部类ConditionObject实现了Condition接口,使用ReentrantLock和Reentra

2017-10-29 10:13:50 5108

原创 Java多线程编程-(15)-读写锁ReentrantReadWriteLock深入分析

上两篇:Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析Java多线程编程-(13)- 关于锁优化的几点建议一、前言上两篇的内容中已经介绍到了锁的实现主要有ReentrantLock和ReentrantReadWriteLock。ReentrantLock是重入锁,顾名思义就是支持重进入的锁,他表示该锁能够支持一个线程对资源的重复加锁,上文中已经提

2017-10-28 15:06:39 1926

原创 Java多线程编程-(14)-无锁CAS操作以及Java中Atomic并发包的“18罗汉”

对于并发控制而言,锁是一种**悲观的策略**。它总是假设每一次的临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果有多个线程同时需要访问临界区资源,就宁可牺牲性能让线程进行等待,所以说锁会阻塞线程执行。 而无锁是一种**乐观的策略**,它会假设对资源的访问是没有冲突的。既然没有冲突,自然不需要等待,所以所有的线程都可以在不停顿的状态下持续执行。那遇到冲突怎么办呢?无锁的策略使用一种叫做**比较交换的技

2017-10-27 14:02:58 2058

原创 Java多线程编程-(13)- 关于锁优化的几点建议

上一篇:Java多线程编程-(11)-从volatile和synchronized的底层实现原理看Java虚拟机对锁优化所做的努力Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析一、背景在《 Java多线程编程-(11)-从volatile和synchronized的底层实现原理看Java虚拟机对锁优化所做的努力》 这一篇文章中,我们大致介绍了Ja

2017-10-27 12:37:00 6968

原创 Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析

一、Lock接口在上一篇文章中: Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信 介绍了如何使用Lock实现和synchronized关键字类似的同步功能,只是Lock在使用时需要显式地获取和释放锁,synchronized实现的隐式的获取所和释放锁。虽然Lock它缺少了(通过synchronized块或者方法所提供的)隐式获取释放锁的便捷性,但是却拥有了锁获取与释放的可操作性、

2017-10-25 15:01:34 3720

原创 Java多线程编程-(11)-从volatile和synchronized的底层实现原理看Java虚拟机对锁优化所做的努力

一、背景对于Java来说我们知道,Java代码首先会编译成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上进行执行。Java中所使用的并发机制依赖于JVM的实现和CPU的指令。下边我们对常见的实现同步的两个关键字volatile和synchronized进行底层原理的分析,分析之余我们就会了解到JVM在对锁的优化所做的事情,这样的话我们以后在使用这两

2017-10-24 10:57:11 10868 1

原创 Java多线程编程-(10)-单例模式几种写法的错与对

前几篇: Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信Java多线程编程-(6)-两...

2017-10-22 15:33:09 3568 4

原创 Java多线程编程-(9)-ThreadLocal造成OOM内存溢出案例演示与原理分析

前几篇: Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信Java多线程编程-(6)-两种...

2017-10-20 19:53:26 21502 21

原创 Java多线程编程-(8)-多图深入分析ThreadLocal原理

前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信Java多线程编程-(6)-两种常用的线程计数器Count

2017-10-20 17:15:13 22925 17

原创 Java多线程编程-(7)-使用线程池实现线程的复用和一些坑的避免

前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信Java多线程编程-(6)-两种...

2017-10-16 19:20:20 13132 4

原创 Java多线程编程-(6)-两种常用的线程计数器CountDownLatch和循环屏障CyclicBarrier

前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信倒计时CountDownLatchCountDownLat

2017-10-12 19:32:49 8131 3

原创 Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信

前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用在《Java多线程编程-(4)-线程间通信机制的介绍与使用》已经学习了,可以使用方法wait/notify 结合同步关键字s

2017-10-10 21:14:50 7839 2

原创 Java多线程编程-(4)-线程间通信机制的介绍与使用

上一篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用线程间通信简介我们知道线程是操作系统中独立的个体,但是这个单独的个体之间没有一种特殊的处理方式使之成为一个整体,线程之间没有任何交流和沟通的话,他就是一个个单独的个体,不足以形成

2017-10-10 18:25:52 7557 14

stormdemo.zip

stormdemo

2017-08-24

kafka-demo

kafka-demo

2017-08-17

MyBatis关联映射代码

MyBatis关联映射代码

2017-06-20

韩顺平Java和javaEE视频教程资 资源下载 完整版

韩顺平Java和javaEE视频教程完整版完整版30G,压缩包里为种子,迅雷打开下载即可

2017-02-16

aop-mysql-demo

aop-mysql-demo

2016-12-29

Android案例之新闻客户端服务器实现,完全属于自己的新闻展示平台

Android案例之新闻客户端服务器实现,完全属于自己的新闻展示平台

2016-11-21

tomcat-redis-session

使用tomcat-redis-session-manager开源框架实现使用Redis存储Nginx+Tomcat负载均衡集群的Session所需要的3个jar:tomcat-redis-session-1.0-SNAPSHOT.jar、jedis-2.7.2.jar、commons-pool2-2.0.jar

2016-07-25

sessionDemo

用于测试Nginx分发请求的案例demo

2016-07-25

Node.js MongoDB AngularJSWeb开发中文版.part1

注意: Node.js MongoDB AngularJSWeb开发((中文版))pdf 由于文件比较大,次分为三部分上传,下载好三部分之后,放在同一个文件夹下,进行解压即可,另外两部分地址为: part2:http://download.csdn.net/detail/u010870518/9539548 part3:http://download.csdn.net/detail/u010870518/9539542 第1部分 引 言 第1章 介绍Node.js-to-AngularJS套件 3 1.1 了解基本的Web开发框架 3 1.1.1 用户 4 1.1.2 浏览器 4 1.1.3 Web服务器 6 1.1.4 后端服务 6 1.2 了解Node.js-to-AngularJS套件组件 7 1.2.1 Node.js 7 1.2.2 MongoDB 8 1.2.3 Express 9 1.2.4 AngularJS 9 1.3 小结 10 1.4 下一章 10 第2章 JavaScript基础 11 2.1 定义变量 11 2.2 了解JavaScript数据类型 12 2.3 使用运算符 13 2.3.1 算术运算符 13 2.3.2 赋值运算符 14 2.3.3 运用比较和条件运算符 14 2.4 实现循环 16 2.4.1 while循环 17 2.4.2 do/while循环 17 2.4.3 for循环 17 2.4.4 for/in循环 18 2.4.5 中断循环 19 2.5 创建函数 19 2.5.1 定义函数 20 2.5.2 传递变量给函数 20 2.5.3 从函数返回值 20 2.5.4 使用匿名函数 21 2.6 理解变量作用域 22 2.7 使用JavaScript对象 22 2.7.1 使用对象语法 23 2.7.2 创建自定义对象 23 2.7.3 使用原型对象模式 24 2.8 处理字符串 25 2.8.1 合并字符串 26 2.8.2 在字符串中搜索子串 26 2.8.3 在一个字符串中替换单词 27 2.8.4 将字符串分割成数组 27 2.9 使用数组 27 2.9.1 合并数组 28 2.9.2 遍历数组 29 2.9.3 将数组转换为字符串 29 2.9.4 检查数组是否包含某个条目 29 2.9.5 在数组中添加条目和删除条目 30 2.10 添加错误处理 30 2.10.1 try/catch块 30 2.10.2 抛出你自己的错误 31 2.10.3 使用finally 31 2.11 小结 32 2.12 下一章 32 第2部分 学习Node.js 第3章 开始使用Node.js 35 3.1 了解Node.js 35 3.1.1 谁在使用Node.js 35 3.1.2 Node.js的用途 36 3.2 Node.js安装 36 3.2.1 纵观Node.js安装位置 36 3.2.2 验证Node.js可执行文件 37 3.2.3 选择Node.js IDE 37 3.3 使用Node.js包 38 3.3.1 什么是Node封装模块 38 3.3.2 了解Node包注册表 38 3.3.3 使用Node包管理器 38 3.3.4 搜索Node封装模块 39 3.3.5 安装Node封装模块 40 3.3.6 使用package.json 41 3.4 创建Node.js应用程序 43 3.4.1 创建Node.js模块封装 43 3.4.2 将一个Node.js封装模块发布到NPM注册表 45 3.4.3 在Node.js应用程序中使用Node.js封装模块 46 3.5 将数据写入控制台 47 3.6 小结 49 3.7 下一章 49 第4章 在Node.js中使用事件、监听器、定时器和回调 51 4.1 了解Node.js事件模型 51 4.1.1 比较事件回调和线程模型 51 4.1.2 在Node.js中阻塞I/O 52 4.1.3 会话示例 54 4.2 将工作添加到事件队列 54 4.2.1 实现定时器 55 4.2.2 使用nextTick来调度工作 58 4.2.3 实现事件发射器和监听器 59 4.3 实现回调 62 4.3.1 向回调函数传递额外的参数 63 4.3.2 在回调中实现闭包 64 4.3.3 链式回调 65 4.4 小结 66 4.5 下一章 66 第5章 在Node.js中处理数据I/O 67 5.1 处理JSON 67 5.1.1 把JSON转换成JavaScript对象 67 5.1.2 把JavaScript对象转换为JSON 68 5.2 使用Buffer模块缓冲数据 68 5.2.1 了解缓冲数据 69 5.2.2 创建缓冲区 69 5.2.3 写入缓冲区 70 5.2.4 从缓冲区读取 71 5.2.5 确定缓冲区长度 72 5.2.6 复制缓冲区 73 5.2.7 对缓冲区切片 74 5.2.8 拼接缓冲区 75 5.3 使用Stream模块来传送数据 76 5.3.1 Readable流 76 5.3.2 Writable流 78 5.3.3 Duplex流 81 5.3.4 Transform流 82 5.3.5 把Readable流用管道输送到Writable流 84 5.4 用Zlib压缩与解压缩数据 85 5.4.1 压缩和解压缩缓冲区 85 5.4.2 压缩/解压缩流 87 5.5 小结 88 5.6 下一章 88 第6章 从Node.js访问文件系统 89 6.1 同步和异步文件系统调用 89 6.2 打开和关闭文件 90 6.3 写入文件 91 6.3.1 简单文件写入 91 6.3.2 同步文件写入 92 6.3.3 异步写入文件 93

2016-06-02

Node.js MongoDB AngularJSWeb开发.part2

Node.js MongoDB AngularJSWeb开发.part2

2016-06-02

Node.js MongoDB AngularJSWeb开发.part3

Node.js MongoDB AngularJSWeb开发.part3

2016-06-02

jakarta-taglibs-standard-1.1.2.zip

出现:java.lang.NoClassDefFoundError:javax/servlet/jsp/jstl/core/ConditionalTagSupport错误的时候,请将使用到的jstl和standard换成这两个即可。

2016-05-13

领域驱动设计与模式实战

领域驱动设计与模式实战,介绍领域驱动设计模式的思想和实战

2016-02-22

Nginx+Tomcat搭建负载均衡,实现网站请求的分发

使用Nginx+Tomcat搭建负载均衡,实现网站请求的分发

2015-11-11

WeiChat.zip

模仿微信语音聊天界面,实现语音的录制,在界面上的显示灯基本功能

2015-05-03

自定义圆形进度条

Android自定义圆形进度条,其中有自定义属性的设置方法

2015-04-22

xuliugenbbs.zip

xuliugenbbs、servlet、jsp、mysql

2015-04-07

WeiChat5_2_1.zip

高仿微信WeiChat5_2_1界面,实现界面的切换和西欧阿西的提示功能

2015-03-06

火车列车查询

使用JQuery Mobile实现火车列车查询

2015-03-05

Viewpager_anim_myself

Viewpager_anim_myself.zip 自定义的Viewpager动画效果

2015-03-03

Viewpager_anim

千变万化的ViewPager切换动画-仅支持3.0以上版本的官方方法

2015-03-03

BaiDuMap项目实例

项目包含完整的使用百度地图接口,包含周边覆盖物 步行路线 公交路线 驾车路线等

2015-02-24

mysql-connector-java-commercial-5.1.25-bin.jar

MySQL的最新驱动程序,当Myeclipse使用DB Browser连接数据库错误:OPTION SQL_SELECT_LIMIT=DEFAULT 则需要更新驱动jar

2014-12-04

Spring3+Hibernate4+Struts2 jar包 SSH框架

Spring3+Hibernate4+Struts2 jar包 SSH框架,里边包含了SSH2框架所需的jar包 并且包含cp30 等等!

2014-10-02

properties editor

ApplicationResources.properties中汉字提示信息,结果显示乱码。 怎么也没解决,在网上找了各种资料,发现一个插件Poperties Editor,只要装上,就可以自动解决这个问题。

2014-09-24

BeanUtilities工具类使用jar包

要使用根据请求自动填充Java对象,表单bean 使用的jar包,BeanUtilities工具类使用jar包

2014-09-05

Servlet实现Session

利用Servlet实现简单的Session登陆页面

2014-08-30

C#代码生成器

C#代码生成器,使用DAL三层 编写的使用代码生成器!

2014-08-29

可视化Java GUI程序设计基于Eclipse VE开发环境 源代码

可视化Java GUI程序设计基于Eclipse VE开发环境 源代码

2014-08-05

Eclipse编辑器基本设置包含基本使用的设置配置过程

项目 作用域 功能 快捷键 全局 全部构建 Ctrl+B 源代码 作用域 功能 快捷键 Java编辑器 格式化 Ctrl+Shift+F Java编辑器 取消注释 Ctrl+\ Java编辑器 注释 Ctrl+/ Java编辑器 添加导入 Ctrl+Shift+M Java编辑器 组织导入 Ctrl+Shift+O Java编辑器 使用try/catch块来包围 未设置,太常用了,所以在这里列出,建议自己设置。也可以使用Ctrl+1自动修正。 运行 作用域 功能 快捷键 全局 单步返回 F7

2014-08-05

Servlet与JSP核心编程

Servlet与JSP核心编程 ServletJSP

2014-05-18

卸载 Microsoft SQL Server 2008

详细介绍了成功卸载 Microsoft SQL Server 2008的过程

2014-04-11

2014届蓝桥杯 本科B组C语言试题

2014届第五届蓝桥杯 本科B组C语言试题

2014-03-23

C++,C编译环境devcpp的使用手册

C++,C编译环境devcpp的使用手册

2014-03-22

第9章 查找

第9章 查找 数据结构 C语言版数据结构清华大学出版社出版

2014-03-08

子网划分的两个实例

关于子网划分的两个实例内容包含了化分子网的详细解法过程

2014-03-08

天翼飞young3.0.3校园版专用

天翼飞young3.0.3校园版专用,用于校园客户端无法使用360wiff工具的装用驱动器

2013-12-28

思科网络技术学院教程CCNA1.网络基础.pdf

思科网络技术学院教程CCNA1.网络基础.pdf

2013-12-25

c++上级选择题截图 2

C++期末考试试题 适用于第一次参加C++考试的同学 以及参加二级考试的 都有一定的帮助

2013-09-03

java语言学习笔记

java学习过程中的 笔记内容,java等级考试,java编程资料

2013-08-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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