Fork me on GitHub

随笔分类 -  java

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