集合类框架 hashmap 源码详解
介绍HashMap 可能是面试的时候必问的题目了,面试官为什么都偏爱拿这个问应聘者?因为 HashMap 它的设计结构和原理比较有意思,它既可以考初学者对 Java 集合的了解又可以深度的发现应聘者的数据结构功底。 Java 7 中 HashMapHashMap 是最简单的,一来我们非常熟悉,二来就是它不支持并发操作……
java 基础知识 动态代理 cglib代理
一、cglib代理介绍cglib代理是实现动态代理的另一种方式,CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理,但当要代理的类没有实现接口或者为了更好的性能,CGLIB是一个好的选择 二、cglib的原理 动态生成目……
java 基础知识 动态代理 jdk代理
一、jdk动态代理动态代理分为jdk动态代理和cglib动态代理,本章讲解jdk动态代理 二、jdk动态代理如何实现 实现InvorcationHander接口,在invoke()方法实现增强 通过Proxy.newProxyInstance()方法获取到代理类 调用代理引用调用目标方法实现曾江 三、代码实现12345……
java 基础知识 静态代理
一、什么是代理模式 定义给目标对象提供一个代理对象,由代理对象操作目标对象的引用。 目的通过操作代理对象,操作目标对象,降低程序的复杂性,可以使用代理类实现目标对象的增强。不改变目标对象实现功能则增加。代理模式的结构图 1234graph LR;bwmcar-->car bwmcar-->bwmproxy bwmpro……
java NIO 相关(七) nio selector channel 的多路复用器
一、概念选择器(selector)是selectableChannel对象的多路复用器,一个selector可以监控多个selectableChannel的io情况,selector可以实现一个线程单独管理多个channel,selector是非阻塞的核心 二、selector可以监控的事件类型 connect 客户端……
java NIO 相关(六) pipe 和 FileChannel文件锁
一、pipe概念 pipe 是nio管道2个线程之前的单项数据连接。 pipe 有2个通道一个是source通道一个是sink通道数据会写入到source通道从sink通道获取数据。如图: 代码实现1234567891011121314151617181920212223242526272829303132333435……
java NIO 相关(五) 分散(Scatter) 和聚集(Gather)
分散(Scatter) 和聚集(Gather)分散读取(scattering reads) 是从channel中读取的数据“分散”到多个buffer中 注意:按照缓冲区的顺序,写入position 和limit 之间的数据到channel 分散读取将通道中的数据分散到多个缓冲区中 聚集写入将多个缓冲区中的数据聚集到通道……
java NIO 相关(四) 通道 channel
channel 介绍通道(channel) :由java.nio.channels包定义的,channel 表示IO源与目标打开的连接 。Channel 类似于传统的流,只不过channel 本身不能直接访问数据,channel 只能与buffer进行交互 一、通道(channel)用于源节点与目标节点的连接,在jav……
java NIO 相关(三) NIO 直接缓冲区和非直接缓冲区
非直接缓冲区通过allocate() 方法分配缓冲区,将缓冲区建立在jvm的内存直接与非直接缓冲区字节缓冲区要么是直接的,要么是非直接的·如果为直接字节缓冲区·则Java虐拟机会尽最大努力直接在此缓冲区上执行本机|/0操作·也就是说,在每次调用基础操作系统的一个本机1/0操作之前(或之后),虐拟机都会尽量避免将缓冲区的……
java NIO 相关(二) 缓冲区buffer的数据存取
简介 java nio 是jdk1.4引入的,其中包含 selector,channel,buffer 其中buffer是用来提高效率的。nio中操作数据,都是直接操作buffer对象 buffer的类型 ByteBuffer CharBuffer ShortBuffer IntBuffer LongBuffer Fl……
java NIO 相关(一) NIO介绍
Java NIO简介 Java nio (new io) 是从java 1.4 版本开始引入有的一个新的IO API 可以替代标准的java io API. NIO 和原来的io有同样的作用和目的,但是使用方式完全不通,NIO支持面向缓存区的基于通道的IO操作,NIO将以更加高效的方式进行文件的读写操作。 |io|ni……
java IO相关(二) BIO NIO AIO 介绍
BIObio 同步阻塞,每一个请求连接都由一个线程来处理 NIOnio 同步非阻塞,多路复用器轮询客户端的请求,每个客户端的 IO 请求会对应服务器的 一个线程 AIOaio 异步非阻塞,客户端的io请求都是由os来处理,os处理完成后再通知服务器启动线程处理 (需要操作系统支持) 进程向操作系统请求数据 操作系统把外……