总结
文章平均质量分 77
is丶Allen
老了当厨子去
展开
-
【近期状态】
最近一年都很忙,很久没有更新技术博客了。之前写的jvm也夭折了。实在没有时间在更新这些了。最近想用业余时间做一点有意思的东西,然后在github上开源,嗯嗯,希望能尽快做完。。对于在文章中评论的朋友们,没有时间一一评论。先抱歉了。我看了一下red5那篇文章的问题最大。因为是很早以前搭建的一个demo我现在也没有环境能给你们再解决了。。。不过如果按照我的文章正常情况下是没有问题的...原创 2018-12-13 10:07:38 · 235 阅读 · 0 评论 -
JUC系列之CyclicBarrier/CountDownLatch/Semaphore
CyclicBarrier同步屏障,如果有人问你如何让N个线程同时之行某件事,请告诉他CyclicBarrier那么他是如何来确保这一点的呢?通过await使所有线程进入barrier。当达到预设计数器或await timeout 条件时,所有await线程开始继续执行结合场景来说,今天我们要去抢火车票。我们为了公平起见,告诉大家今天中午12点开始放票,大家都在12点以前进原创 2017-09-07 23:19:49 · 717 阅读 · 0 评论 -
Java内存模型(JMM)
前言拜读《深入理解JAVA内存模型》后提升了对JMM的更多理解。在此文中进行一个偏白话总结归纳,当然也加入了一些自己的东西。深入理解JAVA内存模型.pdf 下载同步与并发线程并发编程模型有那两个?在我们多线程并发编程的时候,总会遇到为什么线程之间如何同步?线程之间如何通讯?共享内存并发模型顾名思义,共享内存模式,就是线程之间原创 2017-09-15 16:00:24 · 446 阅读 · 0 评论 -
(java)六种常见排序
源码下载 1.冒泡排序package com.algorithm.sort;import com.algorithm.utils.Data;import com.algorithm.utils.DataType;import com.algorithm.utils.annotations.Alias;import com.algorithm.utils.annotatio原创 2017-09-06 16:13:52 · 507 阅读 · 0 评论 -
SpringMVC 接口版本管理/IP访问控制/ANT打包发布到LINUX
前言最近懒了很多也忙了很多,好多东西没办法分享到blog,因为知识点比较杂,没有时间整理。写这篇文章主要原因是,因为遇到了同样的问题,但是网上没有很好的解决方案于是自己解决后,分享给大家 源码在csdn download文章尾部可以下载概述1.springMVC 多版本接口 2.接口有IP访问控制3.支持jsonp4.log发送到email原创 2017-05-25 15:54:38 · 2459 阅读 · 0 评论 -
SpringMVC IOC DI接口版本管理(迭代版)
前言之前写过一篇文章SpringMVC 接口版本管理/IP访问控制/ANT打包发布到LINUX 后来总觉得其中DI,IOC管理没有贯彻下来,主要原因是以为中间用了反射,来对Controller进行调用,反射又脱离了spring动态代理的生态体系。最近针对此方面做了一定的修改和调整。如果对下面内容不理解请先看上面所述的文章修订Controller请先打开上面所述文章的实例,原创 2017-08-04 13:35:45 · 961 阅读 · 3 评论 -
dubbox + springMVC
公告 Dubbo开源项目将得到官方重点维护,我们期待这个优秀的开源项目在未来持续保持活力,引领开源服务框架 Alibaba Dubbo Team 2017.07.31原创 2017-08-01 17:23:16 · 1082 阅读 · 0 评论 -
浅读java.util.Map及其实现类(四)
ProviderRenderingHintsSimpleBindingsTabularDataSupportTreeMapUIDefaultsWeakHashMap原创 2017-06-28 15:02:09 · 675 阅读 · 0 评论 -
浅读java.util.Map及其实现类(二)
AbstractMap*Attributes*AuthProvider*ConcurrentHashMap*ConcurrentSkipListMap*EnumMap*HashMap*Hashtable*IdentityHashMap*LinkedHashMap*PrinterStateReasons*Properties*原创 2017-06-20 16:05:08 · 923 阅读 · 0 评论 -
浅读java.util.Map及其实现类(三)
ConcurrentHashMap源码分享解析 //CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配, //那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。无论哪种情况, //它都会在CAS指令之前返回该位置的值。CAS有效地说明了“我认为位置V应该包含值A;如果包含该值,则将B放到这个位置; //否则,不要更改该位置,只告诉我这个位置现在的值原创 2017-06-27 16:08:37 · 661 阅读 · 0 评论 -
ngxin-rtmp-module 搭建及rtmp & hls 配置简单分享
安装nginx#Nginx安装网上一搜一堆,其实就是下载nginx后 tar zxvf解压然后./configure 看看缺什么,然后yum imstanll什么。最后省事一些注册到系统服务(/etc/init.d/nginx 配置文件网上一堆)#基础组件yum install -y pcre pcre-devel yum install -y zlib zlib-devel原创 2017-05-19 12:04:13 · 1522 阅读 · 1 评论 -
JUC系列之模拟抢票(N人同时抢票,票不足系统补仓,N-M人继续抢票)
前言10.1要去苏州玩。9月初去携程买票,发现过几天才放票现在可以预约抢票。用户流程 : 选票 -> 选预约 -> 选抢票类型极速/快速/免费 -> 支付票价和抢票费用 -> 自动帮抢票携程这个流程我猜测是(当然我没有做过和12306或什么票务接口对接的工作 ) 记录用户选票类型和票信息,等放票的时候通过接口调用买票这个接口可能是多次提交或提交一次设定原创 2017-09-08 12:49:04 · 1445 阅读 · 0 评论 -
自己做个java sqlite连接池
因各种奇葩原因只能自制一个简易的连接池 虽然不是那么强大, 但是已经满足了项目的要求。 能快速的获取和定期释放连接即可,包括max,min的阈值效用 定义一个对象。这没什么好说的import java.sql.Connection;/** * 连接池对象容器 * * @author Allen * @date 2016年10月31日 * */public cl原创 2016-11-17 15:46:12 · 4821 阅读 · 1 评论 -
JAVA虚拟机(JVM)及相关技术体系
JAVA虚拟机(JVM)及相关技术体系JVM - 1. Java虚拟机梗概,那些你不知道的VMJVM - 2. java堆栈里面到底有什么JVM - 3. Java对象创建那点事与内存布局JVM - 4 更新中... 参考资料《深入理解Java虚拟机 jdk1.7》《Java虚拟机规范 jdk1.8》 https://wiki.openjdk.java.net/display/HotSpot/C...原创 2017-12-27 09:33:43 · 290 阅读 · 0 评论 -
JVM - 3. Java对象创建那点事与内存布局
创建与分配方式创建一个对象的方法有很多但在程序层面最终都指向了new。 通常创建一个对象会通过new指令,看是否能在常量池匹配到一个符号引用,再去检查是否有类加载,如果没有则进行类加载过程。 @@>>>符号引用 @@>>>类正常来说创建一个都是堆上分配,但是在前面我们也说过因为JVM优化(逃逸分析),会有堆上分配的情况,具体看下面例子。class A{ //User us原创 2018-01-12 16:47:34 · 550 阅读 · 0 评论 -
JVM - 1. Java虚拟机梗概,那些你不知道的VM
虚拟机梗概JDK Java程序设计语言、 Java虚拟机、 Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境JRE Java API类库中的JavaSE API子集、Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java原创 2017-12-27 10:04:04 · 1035 阅读 · 0 评论 -
JVM - 2. java堆栈里面到底有什么
在虚拟机自动内存管理机制的帮助下, 不容易出现内存泄漏和内存溢出问题不过, 也正是因为把内存控制的权力交给了Java虚拟机如果不了解虚拟机是怎样使用内存的, 那么排查错误将会成为一项异常艰难的工作。运行时数据区 Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。还有一些则是与线程一一对应,他们的生命周期也随着原创 2017-12-27 10:55:35 · 1645 阅读 · 0 评论 -
Fork/Join的应用
Fork/JoinJDK1.7开始提供的在JUC包下的并行任务框架。在多核机器上有显著的效果,主要核心工作窃取 拥有工作窃取算法,空闲线程会帮助其他有任务的线程处理任务队列应用概述查询某个文件夹路径下容量最大的文件常用方法:1. 单线程依次遍历每层目录及文件,记录并对比文件大小 写法简单,效率不高2.多线程线程池遍历每层目录及文件 线程原创 2017-12-21 14:31:05 · 1077 阅读 · 0 评论 -
JAVA NIO 概述及例子
JAVA NIO 简单概述异步非阻塞,基于Reactor模式为核心。#将关注的事件注册到selector当事件发生selector会反馈事件给注册者#java 如何实现的selectorSelector.open(); //打开多路复用器//获取selector//通过源码可见线程安全且唯一 public static SelectorProvider provi原创 2017-11-07 16:33:23 · 348 阅读 · 0 评论 -
HTTPS握手过程与对称加密、非对称加密
前言这篇文章完全是用processon画的,processon蛮方便的正文原创 2017-09-20 16:21:04 · 1743 阅读 · 0 评论 -
浅读java.util.Map及其实现类(五)
WeakHashMap与HashMap强引用,弱引用,软引用,虚引用PhantomReference 虚引用SoftReference 软引用WeakReference 弱引用原创 2017-06-29 14:55:38 · 477 阅读 · 0 评论 -
浅读java.util.Map及其实现类(一)
Map概述 & map java8 method & BigFunction/ Function原创 2017-06-14 16:52:38 · 1825 阅读 · 0 评论 -
分享一下最近对直播的研究red5 nginx-rtmp-module rtmp hls m3u8 ts
Red5red5 之前在google停更了很久,现在在github上频繁更新,但是对HLS支持需要用red5 pro(收费的)red5 依赖 red5 server(其实是在tomcat上进行开发的)red5 project 通过red5的eclipse插件可以轻松创建,当然如果熟手的话手动创建也是没有问题的,暂时遇到的坑也就是HLS不支持和libs的问题了red5原创 2017-04-27 12:22:36 · 6417 阅读 · 0 评论 -
不积跬步无以至千里,不积小流无以成江海
君子曰:学不可以已。 青,取之于蓝,而青于蓝;冰,水为之,而寒于水。木直中绳,輮(煣)以为轮,其曲中规。虽有(又)槁暴(曝),不复挺者,輮(煣)使之然也。故木受绳则直,金就砺则利,君子博学而日参省乎己,则知明而行无过矣。 故不登高山,不知天之高也;不临深溪,不知地之厚也;不闻先王之遗言,不知学问之大也。干,越,夷,貉之子,生而同声,长而异俗,教使之然也。诗曰:「嗟尔君子,无恒安息。靖共转载 2017-06-15 10:21:40 · 5356 阅读 · 0 评论 -
Thread.interrupt 快速解读
特性 [Interrupt为什么有时候有用,有时候没用呢。]Interrupt设置一个线程为中断状态Interrupt操作的线程处于sleep,wait,join 阻塞等状态的时候,会抛出一个InterruptedExceptionInterrupt操作的线程在可中断通道上因调用某个阻塞的 I/O 操作(serverSocketChannel. accept()、so原创 2017-02-23 10:26:30 · 3715 阅读 · 0 评论 -
设计模式之-两阶段终止模式(Two-Phase Termination Patter)模式
首先两阶段终止模式不是23种传统设计模式中的,它是由黄文海在《Java多线程编程实战指南 设计模式》中所提到的模式,现一共可归纳为36种设计模式当我们想要结束一个线程或者关闭jvm的时候,通过此模式可以优雅安全的关闭线程,让线程可以完成它本应完成的当前任务并可以附加一些收尾工作后再进行关闭此模式下关闭线程会有一定延迟,主要在于被关闭线程需要执行完后,再进行关闭首先Java jdk中原创 2017-02-23 13:13:47 · 4738 阅读 · 1 评论 -
设计模式之-观察者(Observer)模式
观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。我们可以把他看做简单的事件驱动实现方式 创建订阅原创 2017-02-16 13:55:44 · 340 阅读 · 0 评论 -
设计模式之-迭代器(Iterator)模式 + 建造者(Build)模式
迭代器(Iterator)模式 又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧。这两种情况好像都能够解决问题。建造者原创 2017-02-16 11:31:45 · 397 阅读 · 0 评论 -
centos hadoop 简单入门配置
#上传 hadoop-2.7.3.tar.gz 到 /usrcd /usrtar zxvf hadoop-2.7.3.tar.gzmv hadoop-2.7.3mkdir /usr/hadoop/tmpvi /etc/profile#追加hadoop环境变量export HADcd /usr/hadoop/etc/hadoop/vi hadoop-env.sh #追加如下内容expo原创 2017-01-09 14:53:10 · 400 阅读 · 0 评论 -
Netty+websocket的客服聊天室
Netty所需jar包 commons-beanutils-1.8.0.jar commons-collections-3.2.jar commons-logging.jar commons-lang-2.4.jar ezmorph-1.0.6.jar json-lib-2.4-jdk15.jar 这里使用org. log4j-1.2.17.jar n原创 2016-12-16 10:56:48 · 3202 阅读 · 1 评论 -
nginx 多组件安装及secure_link配置与文件下载防盗链的使用(JAVA)
前言防盗链的重要性无需多言,nginx本身提供了secure_link来完成防盗链功能,那么java如何来与secure_link交互呢?安装nginx#下载nginx 到 /softwaretar xzvf nginx.tar.gz#进入nginx 目录./configure .make & make install 安装nginx secure_link./con原创 2017-06-07 16:29:16 · 5078 阅读 · 3 评论 -
Red5+SpringMVC整合(RTMP+HTTP)搭建你的直播服务器
Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编写,使用RTMP作为流媒体传输协议,这与FMS完全兼容Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框原创 2017-04-10 11:22:40 · 45987 阅读 · 20 评论 -
cmd小问题
给同事配maven的时候发现 cmd 并不是获取实时的 环境变量信息配置好了maven 先前打开的cmd窗口 并执行不了mvn -v新建一个cmd窗口就可以。。真实搞事情- -原创 2016-06-07 11:15:31 · 274 阅读 · 0 评论 -
maven中本地jar包的添加
成功安装maven到本地并配置环境变量后在cmd中输入mvn install:install-file -Dfile=目标jar包路径 -DgroupId=所属maven库路径 -DartifactId=maven中引用别名 -Dversion=版本号 -Dpackaging=包类型 -DgeneratePom=是否创建pom文件实例mvn install:inst原创 2016-06-06 18:05:52 · 495 阅读 · 0 评论 -
maven安装入门
maven安装原创 2016-06-06 18:19:53 · 434 阅读 · 0 评论 -
java实现svn,svnkit框架的简单应用
SvnKit 地址:https://svnkit.com/download.php项目需要做了个简单的demo,可以进行基础操作。demo可以运行,但是更多高级更多实现需要自己在扩展。因为这个项目已经进入Thread.sleep :( ,开展新项目了 :(功能 1.实现了几个基础操作 2.提供了日志操作 项目结构 首先我们先创建3个对象来为后面服务 package com.svn.原创 2016-11-17 14:16:17 · 10169 阅读 · 4 评论 -
简单实现 angular1.x 双向数据绑定
angular1.x中双向数据绑定指的是,HTML值变化,与其绑定的js中的变量值也变化,而这都主要依靠angular中$digest完成,无需过多的js代码来实现<!DOCTYPE html><html> <head> <meta charset="utf-8"> <script src="http://cdn.static.runoob.com/libs原创 2016-11-28 15:54:09 · 1074 阅读 · 0 评论 -
angular1.x $watch 监听的简单应用
$watch(watchExpression, listener, objectEquality); watchExpression: 被监听的对象 listener: 包含3个值 newValue , oldValue, scope(可以引用一个作用域) objectEquality:是否使用angular.equals方法比对<!DOCTYPE html><h原创 2016-11-28 16:14:52 · 1287 阅读 · 0 评论 -
WebStorm下载及破解
下载地址: http://www.jetbrains.com/webstorm/download/下载安装不要运行webstorm修改系统时间,例如修改为2099年x月x日启动webstorm选择试用30天进入webstorm界面后,关闭webstorm将时间修改回正确日期再次启动webstorm 启动的时候会提示你是试用30天的用户 加载的时候下面写着过期日期2098年原创 2016-11-29 10:18:13 · 4107 阅读 · 0 评论 -
nodeWebKit 0.12版本迁移0.18 迁移记录
原项目使用nw.js 0.12开发。 升级至nw.js 0.18.8 IDE webstormgui.Window.open 无法打开窗口 取消 toolbar设置 路径由xx.html改为/xxx/xx.html (老版本自动定位到xx目录,新版本定位为项目根目录) DevToolsAPI is not defined https://dl.nwjs.io/v0.18.8/原创 2016-11-30 09:19:15 · 500 阅读 · 0 评论