自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 哈希表与哈希值

哈希表是一种数据结构,它可以提供快速的插入和查找操作。不管哈希表中有多少数据,插入和删除时间都是接近常量的时间:即O(1)。缺点是:它是基于数组的,数组创建后难以扩展,哈希表被基本填满时,性能下降严重,而且不能够顺序遍历数据。由于哈希表是基于数组的,所以就要把关键字转化成数组下标。哈希函数负责把大范围的数字(由关键字计算得出)转换成小范围的数字。这个小范围的数字对应着数组下标。转化时会碰到...

2018-09-30 16:30:05 5991

原创 netty(八)--EmbeddedChannel单元测试

最佳实践要求你的测试不仅要能够证明你的实现是正确的,而且容易隔离那些因修改代码而突然出现的问题。这种类型的测试叫做单元测试。EmbeddedChannel是netty专门改进针对ChannelHandler的单元测试而提供的。核心方法:数据流:测试入站消息...

2018-09-29 16:38:16 1893

原创 spring源码(十五)--getBean方法

所有的getBean方法调用,不管是在哪个类中,都是调用的AbstractBeanFactory中的getBean方法。getBean方法又调用了doGetBean(也在这个类中,并且没有被子类覆盖)doGetBean方法:通过name(name可能是别名,所以要处理下)获取beanName(对于一个类而言,是唯一的)从singletonObjects(一个map)中获取单例的bean...

2018-09-29 15:10:59 5337

原创 深度学习--常用数学符号

2018-09-27 15:08:48 4650

原创 2-3-4树

2-3-4树指拥有最多4个子节点3个数据项的多叉树。对非叶节点,有3种可能的情况:有一个数据项的节点,总有2个子节点有两个数据项的节点,总有3个子节点有三个数据项的节点,总有4个子节点2-3-4树不允许一个节点只有一个子节点,要么没有(那就是叶节点),要么有2个及以上。二叉树的规则是关键字比节点大的子节点,是右子节点,比父节点小的,是左子节点。2-3-4树的规则相似,但是加...

2018-09-27 14:31:00 523

原创 netty(七)--Bootstrap

引导一个应用程序是指对它进行配置,并使他运行起来的过程。服务器致力于使用一个父 Channel 来接受来自客户端的连接, 并创建子 Channel 以用于它们之间的通信;而客户端将最可能只需要一个单独的、 没有父 Channel 的 Channel 来用于所有的网络交互。bootstrap类的API名称描述Bootstrap group(EventLoopGrou...

2018-09-26 16:29:56 1297

原创 netty(六)--EventLoop和线程模型

线程模型指定操作系统、编程语言、框架或者应用程序的上下文管理的关键方面。开发人员需要理解与不同模型相关的权衡。Netty 的 EventLoop 是协同设计的一部分,它采用了两个基本的 API: 并发和网络编程。首先, io.netty.util.concurrent 包构建在 JDK 的 java.util.concurrent 包上,用来提供线程执行器。其次, io.netty.channe...

2018-09-26 14:30:37 438

原创 netty(五)--ChannelHandler和ChannelPipeline

Channel的生命周期状态状态描述ChannelUnregisteredchannel已被创建,但还未注册到EventLoopChannelRegisteredChannel已经被注册到了EventLoopChannelActiveChannel处于活跃状态(已经连接到远程节点),现在可以收发消息channelInactiveChannel没有连接...

2018-09-26 09:43:37 414

原创 Java虚拟机(九)--方法调用(二)

源码:public class Test { public static void main(String[] args) { add(5,8,null); } public static long add(int a, long b,String[] args) { long c=a+b; long d=c+9; ...

2018-09-25 23:37:32 157

原创 netty(四)--ByteBuf

  网络数据的基本单位是字节,JavaNIO提供了ByteBuffer作为它的字节容器,但是这个类过于复杂,所以netty使用ByteBuf解决了ByteBuffer的局限性,提供了更好的API。  Netty的数据处理API通过两个组件暴露–abstract class ByteBuf和Interface ByteBufHolder。下面是ByteBu...

2018-09-25 16:23:40 228

原创 netty(三)--传输

传输 API 的核心是 interface Channel, 它被用于所有的 I/O 操作。如图所示, 每个 Channel 都将会被分配一个 ChannelPipeline 和 ChannelConfig。ChannelConfig 包含了该 Channel 的所有配置设置, 并且支持热更新。ChannelPipeline 持有所有将应用于入站和出站数据以及事件的 ChannelHand...

2018-09-25 14:22:15 145

原创 netty(二)--Channel、 EventLoop 和 ChannelFuture;ChannelHandler和ChannelPipeline简述

  netty解决了技术的和体系结构的领域的问题。首先,它的基于Java NIO的异步的和事件驱动的实现,保证了高负载下应用程序性能的最大化和可伸缩性。其次,netty也包含了一组设计模式,将应用程序逻辑从网络层解耦,简化了开发过程,同时也最大限度地提高了可测试性、模块化及代码的可重用性。Channel – SocketEventLoop – 控制流、多线程处理、并发ChannelFutu...

2018-09-21 14:49:42 1420

原创 netty(一)--一个简单的Netty使用例子

package cn.nn.t2;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelFutureListener;import io.netty.channel.ChannelHandlerContext;import io.netty.chann...

2018-09-21 13:55:51 1221

原创 Java虚拟机(八)--方法调用(一)

方法作为程序的基本单元,作为原子指令的初步封装,计算机必须支持方法的调用。同样,Java语言的原子指令是字节码,Java方法是对字节码的封装,因此jvm必须支持对Java方法的调用。JVM最后实际调用的并不是Java函数,而是对应的机器指令。以汇编演示一个求和程序:先是main函数main: //保存调用者栈基地址,并为main函数分配新栈空间 pushl %ebp movl %es...

2018-09-20 08:34:08 385

原创 spring源码(十四)--GenericBeanDefinition

这个类没有父类以及接口。一般调用parseCustomElement(Element ele)方法:根据节点所属的命名空间,从readerContext中获取相应的处理器,由处理器进行实际的解析。命名空间处理器property-overridePropertyOverrideBeanDefinitionParserannotation-configAnnotio...

2018-09-19 14:50:45 5034

原创 spring源码(十三)--import、bean、beans节点解析

对于spring的配置文件中的Import元素节点<import resource="classpath:spring-shiro.xml"/>由以下方法解析委托environment解析resource的路径,是url就使用完整路径解析,否则使用相对路径解析从readerContext中获取reader解析所有bean,后面就和第十一篇的流

2018-09-19 14:38:33 875

原创 spring源码(十一)--DefaultBeanDefinitionDocumentReader(spring配置文件解析)

DefaultBeanDefinitionDocumentReader的类层次图:接口中定义了一个方法,注册xml中的beanpublic interface BeanDefinitionDocumentReader { void registerBeanDefinitions(Document var1, XmlReaderContext var2) throws BeanDef...

2018-09-19 14:05:50 856 1

原创 spring源码(三)--XmlBeanDefinitionReader

类继承层次图:类名作用BeanDefinitionReader定义资源文件读取并转换为BeanDefinition的功能EnvironmentCapable定义了获取Environment的方法AbstractBeanDefinitionReader对上面2个接口做了实现XmlBeanDefinitionReader读取配置文件的大致流程通过继...

2018-09-19 10:56:37 558 2

原创 spring源码(十)--ComponentScanBeanDefinitionParser(以及命名空间处理器)

这是用来解析xml文件中,componentscan 标记的大体上分三步:获取 base-package属性,使用,; 分割每个目录创建scanner使用scanner解析目录中所有的文件方法为public BeanDefinition parse(Element element, ParserContext parserContext) { String basePa...

2018-09-19 10:33:09 680

原创 spring源码(五)--DefaultDocumentLoader

DocumenLoader的类层次图: 接口中只定义了一个方法loadDocument:public interface DocumentLoader { Document loadDocument(InputSource var1, EntityResolver var2, ErrorHandler var3, int var4, boolean var5) throws ...

2018-09-14 16:22:22 542

原创 spring源码(八)--ResourceEntityResolver(dtd xsd及其它)

类层次图: EntityResolver是jdk中rt.jar包中的接口,接口中只有一个方法public abstract InputSource resolveEntity (String publicId,String systemId) throws SAXException, IOException;DelegatingEntityResolver类实现了...

2018-09-14 15:36:05 1067

原创 spring源码(七)--PathMatchingResourcePatternResolver(由路径到Resource,解析常规资源)

类层次图 接口中方法,返回值Resource在第四篇有解析public interface ResourceLoader { String CLASSPATH_URL_PREFIX = "classpath:"; Resource getResource(String var1); ClassLoader getClassLoader();}子接口...

2018-09-14 14:50:03 6633

原创 spring源码(六)--XmlValidationModeDetector(获取xml文档校验模式)

这个类决定xml文件的验证模式核心方法为detectValidationMode,获取一个指定xml文件的输入流,读取其中的验证模式。/** 校验inputStream,如果xml文件含有doctype,则是dtd约束(返回2),否则是xsd约束(返回3)*/ public int detectValidationMode(InputStream inputStream) ...

2018-09-13 13:53:24 1506 3

原创 spring源码(四)--ClassPathResource

类继承层次图: 类名 作用 InputStreamSource 定义了获取InputStream的方法 Resource 定义了资源属性的获取方法 AbstractResource 对Resource方法做了实现 AbstractResolvingResource 对AbstractResource 的方法做了覆盖 Cl...

2018-09-12 15:28:16 9053

原创 红黑树-RBTree-TreeMap

红黑规则每一个节点不是红色就是黑色根总是黑色节点是红色,则子节点必须是黑色根节点到叶节点或者空子节点的每条路径,必须包含相同数目的黑色节点根节点到叶节点路径伤的黑色节点的数目称为黑色高度,所有根到叶节点路径上的黑色高度必须相同。...

2018-09-09 19:26:43 181

原创 哈夫曼编码-Java实现

哈夫曼编码主要用于数据压缩,用更少的位表示更多的数据。首先对原始数据进行统计,计算每个字符出现的次数,然后建立哈夫曼树。 哈夫曼树也叫最优二叉树(哈夫曼树)。解码时,对编码后的数据,从哈夫曼树的根出发,遇到一个叶子节点,则译出一个字符,重复此步骤,直到译出所有字符。建立哈夫曼树的标准是,总长最短,译码时,结果唯一。每个字符的编码不能是其它字符的前置。public class ...

2018-09-06 16:35:01 5955 2

原创

二叉树的实现:public class Node { int iData; double fData; Node leftChild; Node rightChild; public void displayNode(){ }}public class Tree { private Node root; pub...

2018-09-02 00:52:11 114

ASM-all 6.2

asm开发的jar包。

2018-10-26

空空如也

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

TA关注的人

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