- 博客(16)
- 收藏
- 关注
原创 如何理解通配符在 Java 中的使用有两种形式:? extends T 和 ? super T。
(我们可以举出一个例子,假如T是Number类型,他的子类就有可能是Float或Integer,如果是Integer就无法再给他赋予Float)所以无法向其中添加任何元素,因为我们无法确定实际类型是Float还是Integer或者其他子类型。在使用时,可以将该通配符参数视为只读的。这两种通配符的使用方式是为了增强泛型的灵活性。通配符允许我们处理未知类型的数据,但在使用时需要注意保证类型安全。类型的元素,但无法确切知道列表中的元素类型。在使用时,可以将通配符参数视为只写的。:表示某个未知类型,它是。
2024-03-11 15:35:25
240
原创 快速搞定netty自定义通信协议,就是这么简单!!
1、首先需要定义一个协议;2、其次定制一个编码器,便于发送端把自定义的协议给解码成数据流发送到网络上;3、最后定制一个解码器,便于接收端把收到的数据流再解码成自定协议的数据结构;下面我们分别纤细介绍这三个数据结构。
2024-02-28 11:14:41
355
1
原创 对java代理函数Proxy.newProxyInstance功能的个人理解?
刚开始使用这个函数时候也就是有样画样,并不太了解这个代理函数的深入含义,知道在做远程调用接口规范是才发现这个行数的妙用。废话不多说,先来看段代码。2、 这样做的意义是什么呢,就是作为远程调用的接口的约束。(远程服务,直接把自己实现的接口给开放出来给客户端引用,并通过代理来实现远程调用逻辑即可)//TODO 实现远程调用逻辑,proxy是代理本身,method是接口方法,args是相应接口参数。1、代理函数可以同时设置成对个类的代理。
2024-02-26 11:22:18
423
1
原创 在字节码转16进制时为什么用到了& 0xFF?
在十进制转十六进制的时候,我们用到了& 0xFF,这个是为了防止byte转成int的时候,从8位变成32位,会在高位自动补齐缺少的位数,补齐的数值和byte原来的高位值一样,因为java采用的补码的计算方式,当byte为负数的时候,高位补齐的值为1,这样会和原来的值有出入导致。
2024-02-22 15:35:10
677
1
原创 如何理解一个字节能够表示的有符号数值范围是-128到127?
对于额外保存的数,我们当然是希望保存这个范围之外的数,并且最好“接壤” 127 ~ -127这个范围,那么优先考虑 128 和 -128。我们知道,字节的存储其实是使用补码来表示的,-127的补码是 10000001,这个数字 减1 刚好是 “-0” 10000000,-127 减1 等于 -128,所以这里将 “-0” 10000000 表示 -128 最合适。这样一来,正数就能表示 2^7个 即 127 ~ 0 之间的数,负数则能表示 - 2^7个 即 -127 ~ 0 之间的数字。
2024-02-22 15:28:25
1128
1
原创 Netty学习笔记--ByteToMessageDecoder与ChannelInboundHandlerAdapter的关系
4、ByteBuf read = (ByteBuf) channel.readInbound() 读到的数据恰好是解码类中decode函数out列表的一个元素,可以用ByteBufUtil.hexDump(read)输出十六进制的数据,输出数据每两位占一个字节。3、buf.skipBytes(4).readSlice(3)可以读取ByteBuf buf = Unpooled.buffer()中写入的数据,buf.writeByte(i)可以向buf中写入数据。将修改后的消息传递给下一个。
2024-01-26 21:29:05
247
1
原创 学习Netty中关键概念笔记
Channel代表了一个与远程端点(比如客户端或服务器)的连接,它负责数据的读取和写入。而是针对这个Channel的数据处理流水线,用于定义数据的处理顺序和规则。
2024-01-05 12:53:15
604
1
原创 oauth2自定义授权模式-AbstractTokenGranter功能介绍
它的主要功能是在认证授权的过程中负责颁发令牌(Token)。在 Spring Security OAuth2 等框架中,你可以通过实现 AbstractTokenGranter接口来定义自己的授权类型或者扩展现有的授权方式,以满足特定的认证授权需求。TokenGranter 允许定义和实现不同的授权类型,例如授权码模式、密码模式、客户端凭证模式、刷新令牌模式等。在认证和授权的过程中,TokenGranter 可以负责执行安全性检查和控制,确保授权过程的安全性和合法性。
2024-01-02 13:08:41
1102
1
原创 java中ThreadLocal使用巨坑笔记
它的主要作用是为每个线程创建一个独立的变量副本,在多线程环境下,各个线程可以独立地访问自己的变量副本,而互不影响其他线程的副本。由于使用后没有及时清理,在线程池环境下线程可能是被重复使用的,这样就会导致线程的下一任务数据被污染,从而使计算逻辑出现BUG。是 Java 中一种很有用的工具,它提供了一种简单且有效的方式来处理线程局部变量,适用于一些特定场景下的线程隔离需求。中,方便后续在这个线程的任意位置获取并使用,而不需要在每个方法中传递这些信息。能够提供一种线程封闭的机制,使得数据只在指定的线程中可见。
2023-12-27 15:47:42
1409
1
原创 SpringCloud开发实战系列笔记(四)整合gateway
eggs-service是路由的前缀,open/v1/dubboService/hello是微服务xunqiu-eggs-service的服务地址。
2023-11-14 18:19:53
196
原创 SpringCloud开发实战系列笔记(三)整合Mybatis Plus+Nacos
-nacos service discovery client依赖-->--nacos config client 依赖-->
2023-11-13 14:27:42
517
1
原创 SpringCloud开发实战系列笔记(二)新建项目
***//*** @return*//***/这里都是验证后的配置,后面的系列笔记都是基于这个模版进行记录,希望能给起步实操SpringCloud的同学一点帮助。
2023-10-29 15:04:28
195
原创 SpringCloud开发实战系列笔记(一)nacos安装
这个命令会创建一个指向docker-compose二进制文件的符号链接,使其可以在任何目录下使用。安装和配置完成后,您就可以开始使用docker-compose来管理和运行Docker容器了。后面系列笔记的代码都需要基于nacos来进行,所以这里纤细记录下nacos的暗转流程。如果终端窗口中能正常输出版本信息,则说明成功安装了docker-compose。或者更早的版本,可以参考下面的方法使用:(我使用的版本1.25.5)改用官方提供的docker-compose,从。
2023-10-28 14:59:18
323
原创 阿里云NAS共享磁盘挂载并记录集群POD节点的日志信息
ACK集群节点日志记录,目前都是写在pod内部,空间有限无法实现持久保存。另外重新发布后原来日志全部清空。使用NAS共享磁盘,将该磁盘空间挂载到pod日志目录可以解决上面的问题。
2023-10-23 16:21:38
276
原创 阿里云-容器服务 ACK -流量接入ingress
在Kubernetes集群中,Ingress作为集群内服务对外暴露的访问接入点,其几乎承载着集群内服务访问的所有流量。Ingress是Kubernetes中的一个资源对象,用来管理集群外部访问集群内部服务的方式。您可以通过Ingress资源来配置不同的转发规则,从而达到根据不同的规则设置访问集群内不同的Service所对应的后端Pod。
2023-10-20 15:40:32
316
1
gateway+oauth2+jwt实现网关统一鉴权
2023-12-27
springboot整合oauth2
2023-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人