自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Spring Framework】SmartInitializingSingleton解析以及使用

SmartInitializingSingleton

2019-05-16 17:15:46 2103

原创 【Spring Framework】BeanPostProcessor解析以及使用

【Spring Framework】BeanPostProcessor解析以及使用

2019-05-10 10:13:18 57

原创 【Spring Framework】Spring源码Bean创建及依赖注入的实现

【Spring Framework】Spring源码Bean创建及依赖注入的实现

2019-05-09 11:05:13 190

原创 【Spring Framework】Spring中IOC容器初始化及Bean解析过程

【Spring Framework】

2019-05-05 15:54:41 243

原创 【Java并发】Executor框架和线程池ThreadPoolExecutor的使用

【Java并发】线程池ThreadPoolExecutord的使用

2019-04-30 10:53:26 191

原创 【Java并发】AQS四:AbstractQueuedSynchronizer内部方法分类详细

AQS提供一个框架来实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量、事件等)。该类被设计为大多数类型的同步器的有用基础,这些同步器依赖于单个原子 state 值来表示状态。子类必须定义更改此状态的受保护方法,并定义该状态对于正在获取或释放的对象的含义。鉴于此,该类中的其他方法执行所有排队和阻塞机制。子类可以维护其他状态字段,但是只跟踪使用方法getState()、setStat...

2019-04-24 13:58:46 109

原创 【Java并发】AQS三:AbstractQueuedSynchronizer同步基础框架内部条件等待ConditionObject

ConditionObject条件实现AQS作为Lock接口实现的基础。该类的方法文档从锁和条件用户的角度描述了机制,而不是行为规范。该类的导出版本通常需要附带描述依赖于关联的AbstractQueuedSynchronizer的条件语义的文档。public class ConditionObject implements Condition, java.io.Serializable { ...

2019-04-23 16:32:47 55

原创 【Java并发】AQS二:AbstractQueuedSynchronizer同步基础框架内部Node

/** * 等待队列节点类 * * 等待队列是“CLH”(Craig、Landin和Hagersten)锁队列的变体。CLH锁通常用于自旋锁。相反,我们使用它们来阻塞同步器, * 但是使用相同的基本策略,即在其节点的前身中保存关于线程的一些控制信息。每个节点中的“status”字段跟踪线程是否应该阻塞。 * 节点在其前任节点释放时发出信号。否则,队列的每个节点都充当一个特定的通知样式的监...

2019-04-23 08:34:07 68

原创 【Java并发】AQS一:AbstractQueuedSynchronizer同步工具介绍

AQS提供一个框架来实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量、事件等)。该类被设计为大多数类型的同步器的有用基础,这些同步器依赖于单个原子 state 值来表示状态。子类必须定义更改此状态的受保护方法,并定义该状态对于正在获取或释放的对象的含义。鉴于此,该类中的其他方法执行所有排队和阻塞机制。子类可以维护其他状态字段,但是只跟踪使用方法getState()、setStat...

2019-04-23 08:30:46 70

原创 UML建模以及画图

随着业务的发展,以及项目的扩大,项目的拆分细化,项目之间的复杂度变高,这个时候光靠人脑是很难记住所有的东西的,为了能更快的了解整个的概括,需要一种图形化的方式展示出项目的整体结构,所以UML就是一种很好的方式。UML统一建模语言(Unified Modeling Language)是一种绘制软件蓝图的标准语言。...

2019-04-21 09:59:49 1274

原创 【Java并发】信号量闭锁栅栏以及其工具类

信号量,闭锁,栅栏都是java中锁的一个实现和ReentrantLock锁类似,只是有各自不同的特点。ReentrantLock是对唯一资源的访问进行并发的控制。一:信号量(Semaphore)信号量是对有限数量的资源访问进行并发控制,假若有n个资源,在某个时刻最多允许n个线程同时访问。信号量在Java中的具体实现是Semaphore....

2019-04-18 17:57:23 131

原创 【Java并发】CopyOnWriteArrayList写时复制容器

Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。...

2019-04-17 13:53:23 100

原创 【深入理解Java虚拟机】Java虚拟机内部实现的锁优化

【深入理解Java虚拟机】内存模型与线程

2019-04-16 17:18:49 41

原创 【深入理解Java虚拟机】Java内存模型

【深入理解Java虚拟机】线程安全与锁优化

2019-04-15 21:37:18 60

原创 【深入理解Java虚拟机】HotSpot虚拟机JIT编译器

【深入理解Java虚拟机】运行期优化

2019-04-14 19:13:26 151 2

原创 【深入理解Java虚拟机】语法糖

【深入理解Java虚拟机】语法糖

2019-04-13 10:06:52 45

原创 【深入理解Java虚拟机】方法调用之静态分派与动态分派

静态分派与动态分派

2019-04-11 09:21:02 130

原创 【深入理解Java虚拟机】运行时栈帧结构

字节码执行引擎

2019-04-10 16:35:50 50

原创 【深入理解Java虚拟机】类加载器以及双亲委派机制

类加载器双亲委派机制

2019-04-09 14:08:30 157

原创 【深入理解Java虚拟机】字节码指令

指令:操作码(Opcode) + 操作数(Operands),由于Java虚拟机采用面向操作数栈而不是寄存器的架构,所以大多数的指令都不包含操作数,只有一个操作码...

2019-04-08 21:34:44 68

原创 【深入理解Java虚拟机】垃圾回收与内存分配策略

一:判断对象是否已死(需要回收)的方法(1):引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能被使用的。存在问题:很难解决对象之间相互引用的问题(2):可达性分析算法:GC Roots 的对象最为起始点,从这些节点开始向下搜索,搜索走过的路径称为引用链(Reference Chain),当一个对象...

2019-04-04 13:08:22 59

原创 【深入理解Java虚拟机】内存管理和对象访问

一:JVM内存区域划分(1)程序计数器(线程私有):类似于eclipse中断点程序(行号指示器),记录了程序下一步需要执行的字节码指令,分支,循环等分支。线程私有,每个线程有一个程序计数器程序计数器是为了多线程情况下,线程执行切换后,处理器回来原来线程能找到之前线程执行的位置若执行Java方法,计数器记录是是正在执行的虚拟机字节码指令的地址,若执行Native方法,这个计数器为空,此内存...

2019-04-02 14:10:56 125

原创 Netty网络编程九:Netty服务端源码监控

一:概述Netty为了向使用者屏蔽NIO通信的底层细节,在和用户交互的边界做了封装,目的就是为了减少开发者的开发工作量,降低开发难度。用户可以通过ServerBootstrap启动辅助类,方便的创建服务端。可以通过时序图了解下netty服务端运行流程:直接看源码走,查看运行流程:1、服务端创建以ServerBootstrap开始,往group方法里添加两个参数,跟踪源码发现NioEve...

2019-04-01 08:48:50 186

原创 Netty网络编程八:Netty之WebSocket协议栈开发详解

目录

2019-03-29 10:18:34 443

原创 Netty网络编程七:Netty之Http协议栈开发详解

目录

2019-03-28 09:41:55 94

原创 Netty网络编程六:Netty序列化编解码以及Protobuf序列化工具的使用

一:概述在进行网络传输时,我们传输到网络上的数据,并不一定是字符串,而可能是一个对象,这时候我们就需要,将对象以有效的方式转为字节数组传输到网络中,然后收到数据的一方可以解析出有效的数据。例如在java中,我们需要传输对象,可以直接通过将ObjectOutputStream或ObjectInputStream直接作为可存储的字节数组传输到网络中。通过java这种序列化对象的方式,存在一些问题:...

2019-03-25 19:03:01 213

原创 Netty网络编程五:Netty粘包拆包解码器源码分析与自定义解码器

Netty网络编程五:Netty粘包拆包解码器源码分析之自定义解码器一:概述由上一篇文章讲完了ByteToMessageDecoder,再来看其实现LineBasedFrameDecoder ,DelimiterBasedFrameDecoder,FixedLengthFrameDecoder发现只要实现decode()方法即可,并按照指定的分割条件进行字节流数据分割,然后将处理好的数据加入到...

2019-03-17 18:47:55 68

原创 Netty网络编程四:Netty粘包拆包解码器之ByteToMessageDecoder

一:ByteToMessageDecoder的作用ByteToMessageDecoder在Netty中主要是用来解决半包积累的问题,是一种解码器,LineBasedFrameDecoder ,DelimiterBasedFrameDecoder,FixedLengthFrameDecoder都是其的一种具体的实现。因为要想netty解决半包拆包问题,需要从认识ByteToMessageDeco...

2019-03-12 19:05:19 558

原创 Netty网络编程三:Netty解决粘包和拆包

目录1.tcp粘包/拆包原因2.粘包解决策略3.具体实现思路4.netty提供的粘包解决方法一:tcp粘包/拆包原因我们都知道Netty是基于NIO的,nio进行客户端与服务端socket编程,在发送消息时,底层是基于TCP传输协议的,首先,TCP协议是基于字节流的,把发送或接受的数据看成一段无结构的字节流,没有边界。其次,在TCP的首部也没有表示数据长度的字段。因此当使用tcp传输...

2019-03-11 17:08:22 251

原创 Netty网络编程二:Netty概述以及入门案例

目录1、概述2、入门案例一:概述虽然原生的java给我们提供了非常强大NIO的功能,但是由于使用上的,众多网络编程上的问题,任然需要开发者自己开发维护,因为选择Netty这种基于原生NIO进行开发的框架来助于我们的开发。二:入门案例学任何框架都是从入门案例,netty也不例外,先搭建一个简单的服务端,客户端来理解Netty的便捷性。需求:客户端连接服务端后,给服务端发送一条消息,服...

2019-03-08 13:56:54 180

原创 Netty网络编程一:NIO

目录1 传统BIO socket通信2 NIO 编程一:传统socket通信在NIO编程没出来之前,java使用的socket编程时socket 服务端:public class OldSocketServer { private void start(int port) throws IOException { ServerSocket serverSo...

2019-03-05 16:16:52 109

原创 基于Netty写一个http协议的服务

第一步:引入netty的jar包,本文是使用的是netty-all-4.1.9.Final.jar第二步:创建netty服务import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import org.slf4j.Logger;import org.springframework.beans.fact...

2018-02-08 10:31:22 300

原创 shell脚本读取日志拼接成sql执行到mysql数据库

一个处理日志的脚本,待优化(ps:第一次小shell脚本,坑多,记录下)

2017-12-20 10:49:14 1079

原创 Redis与spring整合缓存的业务场景使用方法二(使用注解@Cacheable@CacheEvict)

一:配置appliction-redis.xml<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context

2017-05-08 09:29:45 692 2

原创 Redis与spring整合缓存的业务场景使用方法一

需求:给商品的包装做缓存(该需求只为了测试缓存使用)1、pom.xml(版本已外部定义)2、spring-redis.xml的配置xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:uti

2017-05-05 10:16:02 1041

原创 Https的工作流程图

记录下,我对https加密过程的理解

2017-03-23 09:19:41 1405

原创 Activiti工作流入门

一 : 安装Eclipse插件打开:Help ----> Install New Software ----> Add 输入Name: Activiti Designer Location: http://activiti.org/designer/update/ 输入完成后,单击OK按钮等待下载完成后安装即可二:设置eclipse activiti插件的画流程图选项

2017-02-18 19:24:34 582

原创 maven下axis2与spring的整合开发流程

第一步:pom.xml导入axis2的依赖  我用1.6.2版本的版本指定-->1.6.2     org.apache.axis2    axis2    ${axis2.version}    org.apache.axis2    axis2-spring    ${axis2.version}    org.apache.

2017-01-11 14:42:21 14723 4

netty网络源码

文章中的所有案例的源码

2019-03-29

JAVA并发编程实战

java并发编程实战。

2018-12-12

java之NIO(中文版)

Java 程序员把全部精力用在优化处理效率上,而对 I/O 关注不足,在某种程度上讲这并非他们 的错。在 Java 的早期,JVM 在解释字节码时往往很少或没有运行时优化。这就意味着,Java 程序 往往拖得很长,其运行速率大大低于本地编译代码,因而对操作系统 I/O 子系统的要求并不太高。 如今在运行时优化方面,JVM 已然前进了一大步。现在 JVM 运行字节码的速率已经接近本地 编译代码,借助动态运行时优化,其表现甚至还有所超越。这就意味着,多数 Java 应用程序已不 再受 CPU 的束缚(把大量时间用在执行代码上),而更多时候是受 I/O 的束缚(等待数据传 输)。

2018-12-12

UML精华最新中文版(第三版)

UML精粹第三版本中文版 在軟體開發方面,嫻熟UML 與架構設計能力的人還是相當少,大家在軟體分析與設計 上主要還是藉助不精確的中文與程式碼來溝通。這對國內發展軟體來說是很大的隱憂。 如果想要提升大家用UML 溝通的能力,單單靠個人進修是很難達成的,因為那是很難 進行對話的。唯有透過「共同使用」才能讓大家對UML 這個討論OO 時所用到的語言, 有較好的語言操控能力。至於架構設計方面,因為大家對設計樣式(design pattern)的 使用還不夠熟練,以致於目前還無法直接以樣式語言(pattern language)中的樣式字彙 做溝通。由於一個好的架構設計中會牽涉到很多不同的設計樣式,所以如果大家還停留 在設計樣式的討論上,將很難以較高的抽象概念(abstraction)去釐清架構設計問題。

2018-12-10

最新计算机网络第七版

计算机网络第七版本,谢希仁最新。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-03-14

IK分词器solr

ik分词器

2017-01-15

空空如也

空空如也

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

TA关注的人 TA的粉丝

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