自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringMVC 请求处理 - HandlerInterceptor

对SpringMVC有所了解的人肯定接触过HandlerInterceptor拦截器,HandlerInterceptor接口给我们提供了3个方法: (1)preHandle: 在执行controller处理之前执行,返回值为boolean ,返回值为true时接着执行postHandle和afterCompletion,如果我们返回false则中断执行 (2)postHandle:在执行co...

2018-11-30 10:18:40 476

转载 netty源码分析之揭开reactor线程的面纱(三)

上两篇博文(netty源码分析之揭开reactor线程的面纱(一),netty源码分析之揭开reactor线程的面纱(二))已经描述了netty的reactor线程前两个步骤所处理的工作,在这里,我们用这张图片来回顾一下: reactor线程三部曲 简单总结一下reactor线程三部曲 轮询出IO事件 处理IO事件 处理任务队列 今天,我们要进行的是三部曲中的最后一曲【处理任务队列】...

2018-11-29 10:48:58 164

转载 netty源码分析之揭开reactor线程的面纱(二)

如果你对netty的reactor线程不了解,建议先看下上一篇文章netty源码分析之揭开reactor线程的面纱(一),这里再把reactor中的三个步骤的图贴一下 reactor线程 我们已经了解到netty reactor线程的第一步是轮询出注册在selector上面的IO事件(select),那么接下来就要处理这些IO事件(process selected keys),本篇文章我们...

2018-11-29 10:47:53 111

转载 netty源码分析之揭开reactor线程的面纱(一)

netty最核心的就是reactor线程,对应项目中使用广泛的NioEventLoop,那么NioEventLoop里面到底在干些什么事?netty是如何保证事件循环的高效轮询和任务的及时执行?又是如何来优雅地fix掉jdk的nio bug?带着这些疑问,本篇文章将庖丁解牛,带你逐步了解netty reactor线程的真相[源码基于4.1.6.Final] reactor 线程的启动 NioE...

2018-11-29 10:46:03 124

原创 JVM(六):GC日志阅读

垃圾回收器的可用组合: Young Tenured JVM options Serial Serial -XX:+UseSerialGC Parallel Scavenge Serial -XX:+UseParallelGC -XX:+UseSeriesOldGC Parallel New Serial N/A Serial ...

2018-11-28 18:20:33 179

原创 JVM(五):GC垃圾收集器分类

1、Serial收集器(新生代) 单线程,在进行垃圾收集时必须暂停其他所有的工作线程(“Stop the World“)。虚拟机运行在Client模式下的默认新生代收集器。简单而高效(与其他收集器的单线程比),对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程效率。 2、ParNew收集器(新生代) ParNew收集器其实是...

2018-11-28 18:16:09 258

原创 JVM(四):GC算法

1、对象与引用 为了解决“哪些内存需要回收”的问题,需要确定哪些对象是“有用不可回收”的,而哪些对象是“无用可回收”的。通常存在以下两种判断算法。 引用计数法 算法原理:给对象添加一个引用计数器,每当一个地方引用它时,计数器值就加1;每当一个引用失效时,计数器值就减1;当引用计数为0时,表示该对象不再使用,可以回收。 应用:微软COM/ActionScript3/Python 优势:...

2018-11-28 18:12:22 346

原创 JVM(三):内存模型JMM

JMM是一种规范,目的是解决由于多线程通过共享内存进行通信时,存在的本地内存数据不一致、编译器会对代码指令重排序、处理器会对代码乱序执行等带来的问题。 主内存与工作内存 主内存:所有的实例字段、静态字段和构成数组对象的元素都存储在主内存,但不包括局部变量与方法参数。 工作内存:每个线程都有自己的工作内存,工作线程中保存了该线程用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中...

2018-11-28 18:07:54 198

原创 JVM(二):JVM类加载机制

如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。   加载 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(...

2018-11-28 18:04:05 127

原创 JVM(一):JVM的运行时数据区

由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行。在整个程序执行过程中,JV...

2018-11-28 17:59:37 170

Netty权威指南 第2版

Netty权威指南第2版,Netty入门书籍,Netty经典zhizuo

2018-11-29

消息队列概述

消息队列介绍及选型分析

2016-11-26

经典嵌入式学习步骤及方法

对于初学嵌入式的同学肯定能起到很好的指引作用!

2013-10-18

QPSK调制simulink实现

自己做的一个QPSK的调制解调系统,已经完全调通,适用于学习调制系统的同学下载。

2013-05-24

50个C,C++面试题

绝对经典面试C,C++面试题,50个常见的面试问题。

2013-04-01

数据结构域程序设计

经典数据结构和程序设计案例,对学习C很有帮助。

2013-04-01

c语言经典案例

最经典的c语言开发案例,涉及类,MFC界面的使用

2013-03-31

空空如也

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

TA关注的人

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