自定义博客皮肤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中,这样的行为能带来量大好处: 1、对于频繁使用的对象,可以省略new操作花费的时间; 2、由于new操作的次数减少,因而对系统...

2018-09-02 23:12:52 78 0

原创 jdk- 线程不安全的 SimpleDateFormat

一 测试 demo 我们先来写一个测试 demo public class SimpleDateFormatTest { private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd...

2018-08-29 21:48:58 105 0

原创 zk- 事件注册/通知详解

 

2018-08-29 10:16:58 286 0

原创 zk- 注册/通知

 

2018-08-29 10:14:40 187 0

原创 zk- 使用场景

 

2018-08-29 10:12:38 193 0

原创 zk-acl 权限控制

 

2018-08-29 10:09:24 378 0

原创 zk- 数据模型

 

2018-08-29 10:04:55 90 0

原创 redis- 分布式锁

一 设计思路 1. 本地锁:本地多线程并发时,保证只有一个线程在竞争 redis 锁; 2. redis 锁(setNX):分布式部署多个服务器之间并发时,保证只有一个服务器可以竞争到 redis 锁; 3. 本地多线程并发时,先获取本地锁成功,然后再去尝试获取 redis 锁; red...

2018-08-27 21:09:02 222 0

原创 jdk-juc.Executor接口与js对比理解

 

2018-08-23 21:03:06 60 0

原创 jdk-juc.atomic 类图理解

 

2018-08-23 21:03:01 68 0

原创 jdk-ReentrantLock 理解

一 类定义(re entrant lock:重入锁) public class ReentrantLock implements Lock, java.io.Serializable 二 理解  

2018-08-23 21:02:55 62 0

原创 jdk-juc.locks 类图

 

2018-08-23 21:02:48 78 0

原创 jdk-java.util.function包理解

 

2018-08-23 21:02:43 117 0

原创 jdk-Collectors 收集器方法理解

 

2018-08-23 21:02:37 60 0

原创 jdk-Stream 流操作示意图

 

2018-08-23 21:02:27 88 0

原创 jdk-juc 类图

 

2018-08-20 10:36:55 238 0

原创 jdk-BlockingQueue 理解

一 类定义 public interface BlockingQueue<E> extends Queue<E> 二 理解  

2018-08-20 10:33:57 73 0

原创 jdk-AbstractQueue 理解

一 类定义 public abstract class AbstractQueue<E> extends AbstractCollection<E> implements Queue<E> 二...

2018-08-20 10:31:39 373 0

原创 jdk-Collection 理解

一 类定义 public interface Collection<E> extends Iterable<E> 二 理解  

2018-08-20 10:29:35 88 0

原创 jdk-Queue 理解

一 类定义 public interface Queue<E> extends Collection<E> 二 理解   

2018-08-20 10:25:05 149 0

原创 jdk-Iterator 理解

 

2018-08-20 10:23:36 59 0

原创 jdk-wait/notify(notifyAll)时序图理解

 

2018-08-20 10:21:16 124 0

原创 jdk-线程状态转换(public enum State)

 一 源码 public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** ...

2018-08-20 10:05:25 276 0

原创 jdk-线程调度相关方法

 

2018-08-20 10:02:57 66 0

原创 jdk-LocalDate 理解

一 类定义 public final class LocalDate implements Temporal, TemporalAdjuster, ChronoLocalDate, Serializable 二 理解  

2018-08-20 10:00:07 227 0

原创 RabbitmMQ安装

rabbitmq这个demo由Spring Boot 搭建的 rabbitmq的简单测试。存在两个分支,master分支是接收RESTful接口请求数据,并将接收到的数据发送到指定的消息队列(hello队列和test队列)。receiver分支是监听消息队列(hello和test队列),并将队列内...

2018-03-01 15:55:37 218 0

原创 Java定时器Timer

定时器的实现原理就是新开一个子线程执行定时任务。 一、一次执行定时器。一次执行定时器的时间如果在当前时间以前会立即执行任务,如果在未来时间,则会到指定的未来时间再执行任务。示例代码:public static void main(String[] args) { try{ ...

2018-03-01 15:53:16 141 0

原创 ReentrantLock结合Condition唤醒指定线程

关键字synchronized与notify()/notifyAll()方法相结合可以实现等待/通知模式,类ReentrantLock也可以实现同样的功能,但需要借助于Condition对象。在使用notify()/notifyAll()方法进行通知时,被通知的线程却是由JVM随机选择的。但使用R...

2018-02-25 11:12:04 1264 0

原创 从单实例部署到负载均衡的演变

还记得刚开始学java ee的时候跑个tomcat然后可以访问就已经很开心和满足了。但是真实的项目部署都是业务服务器多实例部署,通过nginx反向代理,然后代理服务器nginx还需要做主备容灾预防。今天我们就来看一看这其中的演变过程。 一、单实例部署单实例的时候我们对用户登录管理一般采用的都是se...

2018-02-25 11:09:52 238 0

原创 web开发者不可不知的网络知识

作为一名java EE开发者,我们最常用到的可能就是http协议了,但是我们对http协议及其之下的各层协议真的清楚嘛。现在我们就来大概的了解一下。 一、应用层-HTTP 二、传输层-TCP 三、网络层-IP 一、应用层-HTTP一个http请求包含三个组成部分: ...

2018-02-25 11:08:33 96 0

原创 Docker常用命令

Docker常用命令 复制镜像 docker tag imageName:latest newName 移除镜像 docker rmi imageName 查看全部镜像 docker images 启动某个镜像 docker run --name c...

2018-02-25 11:06:38 61 0

原创 Lock接口的使用

在java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在jdk1.5中新增加了ReentrantLock类也能达到同样的效果,并且在扩张功能上也更加强大,使用上也比synchronized更加的灵活。 示例代码:// class Service01 public cl...

2018-02-25 11:04:03 84 0

原创 Tomcat工作原理

tomcat就是一个tcp服务器socketServer,一直在监听着指定的端口port。 一个tomcat内可以部署多个项目(app),每一个项目都有自身的应用上下文(context)。 一个上下文容器(Context)代表一个web应用,每一个上下文包括多个包装器(Wrapper),每个包...

2018-02-25 10:59:45 164 0

原创 NodeJs模块机制

一、CommonJs规范讲到nodejs的模块化就不得不讲CommonJs规范了,在以前的文章里也有讲过CommonJs相关使用,具体使用可以到JavaScript类别下查看,这里就不放传送门了。在这里就不多做赘述了,下面就说一下基本的用法。导出模块 module.exports:// DateU...

2018-02-25 10:58:00 1504 0

原创 NodeJs异步IO

一、异步的应用对于前端开发人员来说,异步编程再普遍不过了(ajax)。对于服务端(java)开发人员来说,也存在异步编程,相关编写可参见Java分类下的“java编写异步处理方法提升系统性能”该篇文章,这里也就不放传送门了。对于移动端所有的触发事件也都是异步的,相关开发人员应该也都是很熟悉的。二、...

2018-02-25 10:57:15 577 0

原创 阅读历程

专业相关阅读 已读 《TCP/IP原理》 《Java多线程编程核心技术》 《深入剖析TOMCAT》 《白帽子讲web安全》 《RabbitMQ实战 高效部署分布式消息队列》 《第一行代码》 《redis的设计与实现》 《JavaScript高级程序设计》 《深入分析java web技...

2018-02-25 10:56:24 99 0

原创 V8垃圾回收机制

一、NodeJs执行环境我们都知道在chrome浏览器内JavaScript是在v8上解释执行的,NodeJs就是基于JavaScript环境和语言编写的,它的执行环境也就离不开v8了。放张图来说明一下浏览器和NodeJs执行环境的对比。上图可用看到,在浏览器中因为需要渲染UI界面(HTML,CS...

2018-02-25 10:55:42 700 0

原创 thymeleaf模块取消HTML5强校验

一、pom.xml添加以下依赖<dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId...

2018-02-24 13:47:17 1679 0

原创 electron 提供SDK接口注入到远端页面使用

一、加载远端页面在main.js内通过 BrowserWindow 对象加载远端页面,如下所示:'use strict';const electron = require('electron') const globalShortcut = electron...

2018-02-24 13:46:33 4226 0

原创 JS Object静态方法讲解

一、Object.assign()将多个对象的可枚举属性拷贝到目标对象上,并且返回赋值后的目标对象。 Object.assign(target, …sources)target:目标对象 …sources:源对象 测试如下:var source1 = { name1: 'sour...

2018-02-24 13:46:00 801 0

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