自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java-HashMap的put()方法-源码详解

1、HashMap是什么?HashMap继承自Map接口,是键值对存储的一种集合。JDK1.7之前底层使用数组+链表实现;JDK1.8之后当链表长度大于默认值8的时候,链表转换为红黑树一般的put()方法就是将key-value添加到HashMap当中,通过key的hashCode经过扰动函数后得到hash值就是在数组中的位置,之后判断数组中是否已经存在了当前的value,存在则覆盖,不存在通过拉链法解决Map<Object,Obkect> hashmap = new HashMap

2021-02-27 15:05:36 2280

原创 Netty-ChannelInitializer-实现原理

在之前的文章中解读了Netty对于一条连接的各个状态的生命周期进行了解读1、ChannelInitializer的实现原理在定义handler的时候通过childHandler()方法设置了一个handle/也就是ChannelInitializer在ChannelInitializer的initChannel()方法中,通过获取channel对应的管道,在里面加入各种方法//xxxxxxxxxxxxxx省略代码```.childHandler(new ChannelInitializer&l

2021-02-17 21:42:20 879

原创 Netty-ChannelHandler-生命周期/顺序解读

继承关系ChannelHandler---------->ChannelInboundHandler----------->ChannelInboundHandlerAdapter自定义一个handler继承ChannelInboundHandlerAdapter,来查看ChannelInboundHandlerAdapter中各个方法的执行顺序LifeCyCleTestHandler.javapublic class LifeCyCleTestHandler extends Cha.

2021-02-17 21:18:45 768 1

原创 算法-尽可能使字符串相等-滑动窗口

1、题目描述给你两个长度相同的字符串,s 和 t。将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 s 的子字符串转化为它在 t 中对应的子字符串,则返回可以转化的最大长度。如果 s 中没有子字符串可以转化成 t 中对应的子字符串,则返回 0。-

2021-02-05 22:28:10 158

原创 Netty-基于Netty实现RPC-仿Dubbo

1、什么是RPCRPC,英文全称是Remote Procedure Call,翻译过来就是远程过程调用。作为一个计算机通信协议,运行在计算机A的程序调用另一台计算机B上的子程序就像调用本地方法一样方便,而这两个程序是分布在不同的服务器上的RPC远程过程调用图示:其中Client就是RPC服务的消费者,Server就是服务提供者,通过上图可以看到完整的调用关系RPC就是将以上的步骤全部封装起来,用户直接使用,而不用关心使用细节,部署后直接能像使用本地方法一样使用远程程序2、设计一个RPC

2021-02-05 22:07:44 239

原创 Java错误解决-incompatible types: cannot infer type arguments for PriorityQueue<>

在以下代码运行时出错PriorityQueue<Long> pq1 = new PriorityQueue<>((o1,o2) -> (o2 - o1));//大顶堆查看报错原因Line 6: error: incompatible types: cannot infer type arguments for PriorityQueue<>reason: cannot infer type-variable(s) E(argument mismat.

2021-02-03 15:19:39 6587 1

原创 Netty-使用netty实现群聊-代码实现

使用Netty实现一个简单的群聊功能

2021-02-02 21:29:45 434

原创 Netty-Unpooled类-细节使用

1、是缓冲区工具类作为Netty具体的缓冲区/数据容器,提供的常用方法如下区别于NIO的ByteBuffer通过给定的数据和字符返回一个Bytebuf对象public static ByteBuf copiedBuffer(CharSequence string,Charset charset)2、内部细节ByteBuf内部维持了三个变量,一个是readerIndex/读数据的指针,一个是writerIndex/写数据的指针,一个是capacity/容量大小3、实战分析代码1pack

2021-02-02 17:46:43 955

原创 Netty-EventLoopGroup/NioEventLoopGroup-自动向下

1、NioEventLoopGroup是EventLoopGroup的实现类EventLoopGroup接口直接继承JDK中的EventExecutorGroup接口。Netty中的NioEventLoopGroup是继承了MultithreadEventLoopGroup抽象类,而MultithreadEventLoopGroup继承MultithreadEventExecutorGroup抽象类。MultithreadEventExecutorGroup抽象类实现了Netty中的EventLoo.

2021-02-02 16:52:05 192

原创 IntelliJ IDEA 2021.1.EAP发布-新特性介绍-附下载链接

1、Java16支持最新发布的IntelliJ IDEA 2021.1.EAP版本,增加了对JDK16的基本支持1)内部类可以声明显式或隐式的成员tream.collect(toUnmodifiableList())被转换成stream.toList()当前toList()函数显示在stream的code completion list中2、WSL 2支持当用户的 IDE 在 Windows 上运行时,该 EAP 将包括对 WSL 2 内的 Java 项目的初步支持。Inte

2021-02-02 16:24:43 2855

原创 Netty-Future/ChannelFuture-核心组件II

1、在Netty中的作用Netty中的IO操作都是异步进行的,并不能和同步一样立即知道消息是否被正确处理Netty为IO操作注册一个监听,当IO操作成功或者不成功的时候都会自动触发注册的监听事件Future和ChannelFuture就是为监听IO事件服务的,不敢IO操作成功不成功都会返回一个ChannelFuture2、FutureNetty的Future接口继承了JDK的Future接口,同时提供了更多的方法public interface Future<V> exten

2021-02-01 21:47:36 232

原创 Netty-Bootstrap/ServerBootstrap-核心组件I

1、BootstrapBootstrap的字面意思是引导,通常情况下,一个Netty应用由一个Bootstrap开始,配置整个Netty程序和串联各个组件在Netty中,Bootstrap是客户端程序的启动引导类2、ServerBootstrap在Netty中,ServerBootstrap是服务端启动引导类3、二者相关的常用方法//该方法用于配置两个服务器端的EventLooppublic ServerBootstrap group(EventLoopGroup parentGrou

2021-02-01 21:28:05 202

《MySQL必知必会》读书笔记-全三十章

个人《MySQL必知必会》读书笔记-全三十章,PDF文档 可以在本人的MySQL专栏查看所有分章内容

2021-01-05

空空如也

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

TA关注的人

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