随笔分类 - java
摘要:概述 本文将对JDK8中 ConcurrentHashMap 源码进行一定程度的解读。解读主要分为六个部分:主要属性与相关内部类介绍、构造函数、put过程、扩容过程、size过程、get过程、与JDK7实现的简单对比。希望对读者学习ConcurrentHashMap有一定的帮助。 阅读本文前,可能需
阅读全文
摘要:泛型 泛型是在JDK 5中引入的特性,是定义类和接口时使用的类型参数。 Java实现泛型的方式属于伪泛型,也就是说编译器并不会特性的类型参数重新生成一个新的类,因此对于JVM而言,不管类型参数是什么,都只保存一个该类的Class对象。 因此,Java的泛型只在编译时期提供了类型安全的校验,在编译结束
阅读全文
摘要:结论 为了加深印象,先把结论放在文章开头。 ++ Java中只有值传递 ++。 形参与实参 在理解Java的值传递 实参Argument 实际参数,主调用函数传递给调用函数的参数 形参Parameter 形式参数,并非实际存在的变量,只在函数定义的函数内部使用。在调用函数时,实参将会给形参赋值,从而
阅读全文
摘要:了解Netty的人多少都会知道Netty的高性能的一个原因就是它是基于事件驱动的,而这一事件的原型就是Reactor模式。 所以在学习EventLoop前,很有必要先搞懂Reactor模式。 本文目录: 传统的服务器设计 Basic Reactor(单线程模式) MultiThreadReactor
阅读全文
摘要:我们在Netty学习系列五的最后提出了一些问题还没得到回答,今天来通过学习NioServerSocketChannel的源码来帮我们找到之前问题的答案。 先看一下NioServerSocketChannel的继承结构。 AttributeMap接口及DefaultAttributeMap主要是提供了
阅读全文
摘要:这篇文章主要是对ServerBootstrap启动流程做一个梳理,方便我们串联起各个类,同时也对主要的一些类有个大概的印象,方便之后逐个类的深入学习。 本篇文章不在具体贴出代码,而是对整个启动流程画了一个时序图,方便我们直观的了解各个过程,读者可以照着时序图,自己跟踪一遍代码,了解整个过程。 清晰大
阅读全文
摘要:我们知道ByteBuf通过读写两个索引分离,避免了NIO中ByteBuffer中读写模式切换时,需要flip等繁琐的操作。 今天就通过一段测试代码以及图例来直观的了解下ByteBuf中的readIndex, writeIndex以及capacity的概念。 先贴出测试代码: 然后是测试打印结果: 对
阅读全文
摘要:今天在项目中遇到控制器中返回的对象经过fastjsonMessageConverter转换后,前台收到的json中多了一个字段A的问题。而返回的这个对象中根本就没有定义这个字段A。 查了好久才发现对象中虽然没有这个字段A,但是有个叫做isA()的方法。 原来fastjson在序列化时是根据方法来的,
阅读全文

浙公网安备 33010602011771号