自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 资源 (7)
  • 收藏
  • 关注

转载 jvm blog

https://gist.github.com/pandening/8b941997851ff6bec29d83a9af821602 首选想探索一下GC是怎么开始工作的,或者说,GC到底是以什么样的方式在工作的;java应用在启动的时候会创建一个jvm进程,JVM内部通过调用create_vm来实现,该方法做了大量的工作来创建一个jvm进程,并且将java应用的main方法启动起...

2019-12-09 11:10:01 657

转载 类的生命周期与threadlocal

http://blog.xiaohansong.com/2016/08/09/ThreadLocal-leak-analyze/http://wiki.xiaohansong.com/java/class_lifecycle.html#_8

2018-04-10 21:34:07 1200

原创 netty源码探索(二)

0. ctx.fire*** 或者 ctx.read write都是基于当前的ctx查找下一个outbound和inbound不会中从headcontext或者tailcontext开始如果需要从头开始调用ctx.pipeline()注意在编写outbound和inbound handler不要忘记调用ctx函数不然链路会断掉1. outbound和inbound操作ChannelOut

2017-09-24 10:37:34 1855

原创 netty源码探索

NioEventLoop是通用的,针对不同的事件通过attachment中的channel自动区分操作。监听的channel为NioServerSocketChannel对应的unsafe为NioMessageUnsafe通讯的channel为NioSocketChannel对应的unsafe为NioByteUnsafe比如:监听的channel为NioServerSocketChannel

2017-09-22 12:46:32 346

原创 ThreadPoolExecutor线程池代码理解

主要的并发访问变量: 1. ctl(3位:状态位 + 29位:workerCount)2. workers工作线程的集合以及一些统计数据,使用mainLock控制保护3. Worker的中断标志,使用AbstractQueuedSynchronizer中的state形成lock和unlock保护

2017-09-07 09:15:10 646

转载 微服务架构下的数据一致性保证(三):补偿模式

在第一篇分享中介绍了微服务架构应满足数据最终一致性,并简要介绍了最终一致性的三种模式:可靠事件模式、补偿模式、TCC模式。 在第二篇分享中深入可靠事件模式,讲述了可靠事件投递和幂等性的实现方式和需要注意的问题。 在今天的第三篇分享中来谈谈补偿模式和TCC模式,主要从三个方面来谈。 首先简单回顾一下补偿模式。 补偿模式使用一个额外的协调服务来协调各个需要保证一致性的微服务

2017-07-19 22:50:46 674

转载 保证分布式系统数据一致性的6种方案

问题的起源在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。为了便于讨论问题,先简单

2017-07-19 22:46:36 361

转载 spring bean加载过程

Spring通过资源加载器加载相应的XML文件,使用读取器读取资源加载器中的文件到读取器中,在读取过程中,解析相应的xml文件元素,转化为spring定义的数据结BeanDefinition,把相应的BeanDefinition注册到注册表中。注册表中包含的BeanDefinition的数据结构,没有经过加工处理过,无法得到我们想要的bean对象。我们如何得到Bean对象,spring都做了那

2017-06-08 21:37:02 9303 2

转载 SpringMVC 拦截器不拦截静态资源的三种处理方式方法

SpringMVC提供来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决:方案一、拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml)?12345678910111213

2017-06-06 22:35:31 3693

转载 Servlet中的过滤器Filter详解

web.xml中元素执行的顺序listener->filter->struts拦截器->servlet。1.过滤器的概念Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。优点:过

2017-06-06 20:00:07 369

转载 spring拦截器、与filter的区别

在struts2中用过filter过滤器,在springmvc中还有拦截器,它们都能过滤请求,但是到底有什么区别呢? 一、定义拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常

2017-06-06 19:58:56 526

转载 log4j格式控制

参数说明例子%c列出logger名字空间的全称,如果加上{}表示列出从最内层算起的指定层数的名字空间log4j配置文件参数举例输出显示媒介假设当前logger名字空间是"a.b.c"%ca.b.c%c{2}b.c%20c(若名字空间长度小于20,则左边用空格填充)%-20c(若名字空间长度小

2017-04-26 14:07:08 308

转载 CronTrigger

1、   CronTrigger时间格式配置说明CronTrigger配置格式:格式: [秒] [分] [小时] [日] [月] [周] [年]序号说明是否必填允许填写的值允许的通配符1秒是0-59 , - * /2分

2017-04-19 10:09:33 250

转载 Java线程编程中的阻塞队列容器

1. 什么是阻塞队列?阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方

2017-04-13 09:20:19 341

转载 Oracle中的锁(LOCK)机制

使用锁的目的是什么为了解决多用户环境下并发操作相同的资源而造成的错误修改数据的问题。单用户环境下不需要考虑锁,因为所有操作都是串行的。下面的文章简要的介绍了一下 要点锁的分类异常复杂,enqueue、latch、mutex等,都是为了解决并发存在的,自己也有些混乱,所以也不过多解释了。下面列举一些对于lock的要点内容。l  排他锁:不允许相关的资源被共

2017-03-03 10:52:18 794

转载 UML

类之间的关系1. 种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。2.  其中Aggregation(聚合关系)、Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。3.  Genera

2017-02-26 22:32:38 257

转载 web spring springmvc上下文关系

web上下文(Servlet context),spring上下文(WebApplication Context),springmvc上下文(mlWebApplicationCont)之间区别.上下文:可以简单的理解为容器,配置文件web上下文目标对象是所有web应用,spring上下文目标对象是单个web应用,spring mvc目标对象是单个web应用的spring

2017-02-17 12:45:44 1415

转载 MySQL 加锁处理分析

大神博客链接:http://hedengcheng.com/?p=7711    背景    11.1    MVCC:Snapshot Read vs Current Read    21.2    Cluster Index:聚簇索引    31.3    2PL:Two-Phase Locking    31.4    Is

2016-12-23 21:18:34 313

转载 NIO常见的陷阱解析

【经验总结】NIO常见的陷阱解析NIO编程很容易吗?不容易吗?很容易吗?不容易吗?……有些陷阱你需要知道 陷阱1:处理事件忘记移除key在select返回值大于0的情况下,循环处理Selector.selectedKeys 集合,每处理一个必须移除Iterator it=set.iterator();While(it.hasNext())

2016-12-19 23:14:28 1220

转载 Spring Bean 生命周期

Spring Bean 生命周期任何一个事物都有自己的生命周期,生命的开始、生命中、生命结束。大家最熟悉的应该是servlet 的生命周期吧。和 servlet 一样 spring bean 也有自己的生命周期。本文我就向大家讲述 spring bean 的生命周期,这个对理解 spring 框架有非常好的作用。大家应该知道spring 中有几种供 springbean 生存的容器

2016-11-24 23:08:55 285

转载 java 异常处理 Throwable Error 和Exception

Java异常类层次结构图:异常的英文单词是exception,字面翻译就是“意外、例外”的意思,也就是非正常情况。事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用、数组下标越界、内存溢出错误等,这些都是意外的情况,背离我们程序本身的意图。错误在我们编写程序的过程中会经常发生,包括编译期间和运行期间的错误,在编译期间出现的错误有编译器帮助我们一起修正,然

2016-11-23 22:22:25 482

转载 消息队列设计的精髓

王烨,现在是美团旅游后台研发组的程序猿,之前曾经在百度、去哪和优酷工作过,专注Java后台开发。对于网络编程和并发编程具有浓厚的兴趣,曾经做过一些基础组件,也翻过一些源码,属于比较典型的宅男技术控。期待能够与更多知己,在coding的路上并肩前行~当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、Meta

2016-11-20 17:28:03 760

转载 分布式系统知识罗列

后端技术:分布式服务框架的4项特性一致性哈希:1.【翻译/介绍】jump Consistent hash:零内存消耗,均匀,快速,简洁,来自Google的一致性哈希算法2.http://www.lanindex.com/%E4%B8%80%E8%87%B4%E6%80%A7%E5%93%88%E5%B8%8C%E7%AE%97%E6%B3%95%EF%B

2016-11-19 22:22:51 561

转载 如何用消息系统避免分布式事务?

前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除

2016-11-19 22:18:45 214

转载 Java 之ThreadPoolExecutor.RejectedExecutionHandler

ThreadPoolExecutor.AbortPolicy()抛出java.util.concurrent.RejectedExecutionException异常 终止策略是默认的饱和策略;ThreadPoolExecutor.CallerRunsPolicy()当抛出RejectedExecutionException异常时,会调rejectedExecution方法 调用者运行策略实现

2016-11-17 22:50:15 2953

转载 怎样理解阻塞非阻塞与同步异步的区别?

作者:严肃链接:https://www.zhihu.com/question/19732473/answer/20851256来源:知乎著作权归作者所有,转载请联系作者获得授权。“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/

2016-11-13 22:25:44 189

转载 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。    现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露

2016-11-11 22:32:35 364

转载 理解 Java 垃圾回收机制

2014/12/03 · 开发 · 1 评论 · java, 垃圾回收分享到:48网页布局基础全屏切换效果JavaScript正则表达式Linux智能DNS服务搭建之Bind服务本文由 伯乐在线 - henry 翻译,唐小娟 校稿。未经许可,禁止转载!英文出处:Sangmin Lee。欢迎加入翻译组。

2016-11-11 22:30:03 300

转载 JAVA中的Buffer

JAVA中的Buffer一、属性Buffer有四个基本属性:  1、capacity  容量,buffer能够容纳的最大元素数目,在Buffer创建时设定并不能更改  2、limit buffer中有效位置数目,不能对超过limit中的区域进行读写。  3、position 下一个读或者写的位置  4、mark  用于记忆的标志位,配合reset()使用,初

2016-11-09 22:01:49 1199 1

转载 并发容器

前面的文章中详细介绍了Java的容器框架,在此基础上,本文对Java中的同步容器与并发容器做一些介绍。fail-fast机制快速报错机制(fail-fast)能够防止多个进程同时修改同一个容器的内容。如果在你迭代遍历某个容器的过程中,另一个进程接入其中,并且插入、删除或者修改此容器内的某个对象,就会出现问题:也许迭代过程已经处理过容器中的该元素了,也许还没处理,也许在调用size()之后尺

2016-11-06 23:22:27 260

转载 Unsafe与CAS

Unsafe简单讲一下这个类。Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JVM还是开了一个后门,JDK中有一个类Unsafe,它提供了硬件级别的原子操作。这个类尽管里面的方法都是public的,但是并没有办法使用它们,JDK API文档也没有提供任何关于这个类的方法的解释。总而言之,对于Unsafe类的使用都是受限制的,只有授信的代码才

2016-11-06 21:53:38 277

转载 AspectJ切入点语法详解

6.5.1  Spring AOP支持的AspectJ切入点指示符       切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下:         execution:用于匹配方法执行的连接点;         within:用于匹配指定类型内的方法执行;     

2016-11-06 10:45:35 312

转载 JAVA的动态代理

代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种。 静态代理:由

2016-11-05 23:38:47 198

转载 构建高并发高可用的电商平台架构实践

目录(?)[+]从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流。转载请声明出处:http://blog.csdn.net/yangbutao/article/details/12242441作者:杨步涛关注分布式架构、大数据、搜索、开源技术QQ:306591368技术Blog:http://blog.csdn.N

2016-11-05 20:50:58 444

转载 Java中的ReentrantLock和synchronized两种锁定机制的对比

多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 —— synchronized 和 volatile 。在简化与平台无关的并发类的开发的同时,它决没有使并发类的编写工作变得更繁琐,只是

2016-10-13 23:08:04 247

转载 Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition

Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition  在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队

2016-10-13 23:04:36 298

转载 java异常类层次结构图

java异常类层次结构图:异常的英文单词是exception,字面翻译就是“意外、例外”的意思,也就是非正常情况。事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用、数组下标越界、内存溢出错误等,这些都是意外的情况,背离我们程序本身的意图。错误在我们编写程序的过程中会经常发生,包括编译期间和运行期间的错误,在编译期间出现的错误有编译器帮助我们一起修正,然

2016-10-11 18:20:21 9603

转载 深入理解JVM--JVM垃圾回收机制

Java语言出来之前,大家都在拼命的写C或者C++的程序,而此时存在一个很大的矛盾,C++等语言创建对象要不断的去开辟空间,不用的时候有需要不断的去释放控件,既要写构造函数,又要写析构函数,很多时候都在重复的allocated,然后不停的~析构。于是,有人就提出,能不能写一段程序在实现这块功能,每次创建,释放控件的时候复用这段代码,而无需重复的书写呢?1960年 基于MIT的Lisp首先提

2016-10-09 08:33:30 420

转载 java线程池

转载:http://cuisuqiang.iteye.com/blog/2019372Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。n

2016-10-08 22:53:01 241

原创 负载均衡器&http正向代理

透明的负载均衡器&http正向代理* master-workers架构,http正向代理由独立的dns请求以及缓冲进程 * 使用epoll(ET)模式,采用全异步方式(双缓存,实现双向同时转发);* 事件管理机制(事件池,事件对象分离)* 使用红黑树超时管理* 灵活且简单的配置文件* 多种可配置负载均衡的算法* 实现可以多个分组同时负载* 不间断在线配置参数功能

2015-07-01 14:29:36 708

gradle 手册

为了学习AS,发现使用gradle构建项目。国外网站访问太慢了,果断写个简单的爬虫全量下载下来,要看的拿走

2015-07-30

传票练习软件

使用C# winform做的银行传票联系软件,有定时,记录回放等功能

2014-08-21

zxing javademo

zxing java demo 二维码,简单的输入输出

2014-06-04

android 图形解锁demo

android 图形解锁 demo,基本使用的是android自带的lockpattern然后修改的

2014-06-03

github windows客户端

github的windows客户端,有git bash和gui,使用起来非常简单

2014-06-03

android 19 demo实例

android 19的实例代码,完整版,下载速度实在有点慢,分享给大家

2014-06-03

windows 消息

别人那边转载过来的,希望大家能有用 windows 消息 实例

2012-07-21

空空如也

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

TA关注的人

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