- 博客(78)
- 资源 (7)
- 收藏
- 关注

原创 高性能 Message ToJavaBean 工具 【easy.server.mapper】
【easy.server.mapper】高性能 Message ToJavaBean 映射 工具 方便转换 Map,Servlet,Array到 Bean实体
2023-02-25 15:17:31
695

原创 仿Spring Bean管理简易框架
源码 https://github.com/JinlongLiao/Easy-Rest.git参考Feign 代理方式,实现Spring 的简易的Bean 管理,实现简单的Rest 接口软件架构easy-rest– easy-common– easy-config– easy-start– sample注解@AppStarting 启动类直接@RequestMapping 同Spring Controller 的注解@Component 同Spring 注解,作为组件@DelM
2020-07-11 23:10:15
227
原创 敏感词之 DFA 算法
DFA(deterministic finite automaton) 确定有限状态自动机或确定有限自动机,其由一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号,其中一个状态是初态,某些状态是终态。
2023-02-19 20:57:02
1328
原创 布隆过滤器
首先我们必须保证删除的元素的确在布隆过滤器里面。布隆过滤器的原理是,当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。在布隆过滤器之前,如果想判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定,随着集合中元素的增加,我们需要的存储空间越来越大,检索速度也越来越慢。,它是一种空间效率高的概率数据结构, 基于Hash函数与一个位数组,它能够快速答复"某个元素是否存在"的问题。布隆过滤器只能用于添加元素与查询元素,不能够用于删除元素。
2023-02-19 20:48:12
101
原创 JVM 指令表
操作码助记符序号字节码助记符指令含义10x00nop什么都不做。20x01aconst_null将 null 推送至栈顶。30x02iconst_m1将 int 型-1 推送至栈顶。40x03iconst_0将 int 型 0 推送至栈顶。50x04iconst_1将 int 型 1 推送至栈顶。60x05iconst_2将 int 型 2 推送至栈顶。70x06iconst_3将 int 型 3 推送至
2021-11-16 10:00:27
236
原创 初探Java 函数反射
问题:Java 的函数反射性能真的差吗?Java 实现反射的方式?Java 的函数评估反射性能问题之前,首先先了解java中的反射方式。此为Java method 的源码,其关键实现为 sun.reflect.MethodAccessor类继承关系DelegatingMethodAccessorImpl 采用委托形式实现,其本身不包含业务逻辑class DelegatingMethodAccessorImpl extends MethodAccessorImpl { priv
2021-04-02 18:26:44
908
原创 字符集与字符集编码
字符集与字符集编码什么是是字符集什么是字符集编码,为什么需要字符集编码单字节字符集ASCIIASCII (American Standard Code for InformationI nterchange,美国信息交换标准代码) 由电报码发展而来。第一版标准发布于1963年,1967年经历了一次主要修订,最后一次更新则是在1986年,至今为止共定义了128个字符;其中33个字符无法显示(一些终端提供了扩展,使得这些字符可显示为诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是
2021-03-19 14:26:31
1003
原创 Method isBridge&isSynthetic&isVarArgs
目录Method.isBridgeMethod.isSynthetic()Method.isVarArgs()Method.isBridge桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法。我们可以通过Method.isBridge()方法来判断一个方法是否是桥接方法。因为泛型是在1.5引入的,为了向前兼容,所以会在编译时去掉泛型(泛型擦除)。那么SuperClass接口中的method方法的参数在虚拟机中只能是Obj
2020-09-11 15:10:09
650
原创 NACOS 源码小记
目录标题NAME注册配置过程实例注册 http://127.0.0.1:8848/nacos/v1/ns/instance?app=unknown&groupName=DEFAULT_GROUP&metadata=%7B%7D&namespaceId=quickStart&port=8888&enable=true&healthy=true&clusterName=TEST1&ip=11.11.11.11&weight=1.0&am
2020-09-10 18:31:33
738
原创 SpringCloudGateway小记
目录标题GateWayPropertiesList<FilterDefinition> defaultFiltersList routesList predicatesRoute路由工厂CachingRouteLocator 实现基础 RouteLocator 定义Bean 定义模式使用YAML 配置文件配置文件实例化 RouteLocatorGateway 总路由GateWay 映射路由转发与过滤器GateWayPropertiespublic class GatewayProperti
2020-08-31 14:32:05
433
原创 Zookeeper gui客户端
ZooInspector介绍Zookeeper 可视化客户端,基于Apache的 ZooInspector 进行修改。依赖jar 升级基于Maven 工程构建编写 MAVEN 打包方式 - bin ->启动脚本 - conf -> 系统配置文件 - config -> UI配置 - icons -> 图标
2020-07-02 23:34:23
538
原创 java.lang.reflect 反射知识点 1
java.lang.reflect.ModifierModifier 类提供了 static 方法和常量,对类和成员访问修饰符进行解码。修饰符集被表示为整数,用不同的位位置 (bit position) 表示不同的修饰符。表示修饰符的常量值来自于 The JavaTM Virtual Machine Specification, Second edition 的表 4.1、4.4、4.5 和 4.7。字段说明取值ABSTRACT表示 abstract 修饰符的 int 的值。
2020-06-08 23:16:40
541
原创 Java javax.annotation.processing.Processor (注解处理器)
概念注解处理器(Annotation Processor)是javac内置的一个用于编译时扫描和处理注解(Annotation)的工具。简单的说,在源代码编译阶段,通过注解处理器,我们可以获取源文件内注解(Annotation)相关内容javax.annotation.processing.Processor用于替换JDK6之前的APT(Annotatino Processing Tool)用途由于注解处理器可以在程序编译阶段工作,所以我们可以在编译期间通过注解处理器进行我们需要的操作。比较常用的用法
2020-05-31 23:19:39
7020
原创 MapStruct 对象值拷贝
介绍前提在Java 项目开发中,存在需要连个不同类的对象的转化的情况,例如VO与DO 的中同一逻辑对象的值转换。@AllArgsConstructor@Datapublic class UserVo { private Long id; private String username; private String password; private String phoneNum; private String email; private Ro
2020-05-31 00:46:41
2178
转载 负载均衡 LVS&Nginx
目录LVS三种工作模式的解析基于NAT的LVS模式负载均衡基于TUN的LVS负载均衡基于DR的LVS负载均衡LVS负载均衡调度算法Nginx轮询weightip_hashleast_conn第三方策略fairurl_hash总结LVSLVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的
2020-05-19 11:55:13
268
转载 http2解释
目录1. 背景1.1 关于作者1.2 帮助我!1.3 许可证1.4 文档历史Version 1.13Version 1.12Version 1.11Version 1.10Version 1.92. HTTP的现状2.1 HTTP 1.1过于庞大2.2 过多的可选项2.3 未能被充分利用的TCP2.4 传输大小和资源数量2.5 恼人的延迟2.6 线头阻塞(Head-of-line blocking)3. 那些年,克服延迟之道3.1 Spriting3.2 内联(Inlining)3.3 拼接(Concate
2020-05-17 20:34:01
1300
原创 Java BloomFilter
布隆过滤器BloomFilter布隆过滤器维基百科:布隆过滤器(英語:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的
2020-05-11 17:14:21
1287
原创 Javassist 官方文档 随手笔记
Javassist 官方文档 随手笔记Javassist.CtClassClass search pathIntrospection and customization\$0, \$1, \$2, ...\$\$\$cflow\$r\$w\$_\$sig\$type\$classaddCatch()添加属性方法添加方法添加属性删除注释导入限定名限制字节码级别的APIJavassist.CtClassJavassist.CtClass是类文件的抽象表示。CtClass(编译时类)对象是用于处理类文件的句柄
2020-05-11 17:07:24
784
原创 KPM 字符串查找 Java版
import org.junit.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.validation.constraints.NotNull;public class KpmTest { private static final Logger log = LoggerFactor...
2020-04-30 01:16:17
315
原创 什么是RPC&RMI
目录RPCRPC要解决的问题:Java常用框架对比RMIdemoRPC(Remote Procedure Call)远程过程调用远程过程调用是相对于本地过程调用来说的RPC要解决的问题:解决分布式系统中,服务之间的调用问题。远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。Java常用框架OpenFeignDubboHession(推荐Alibaba H...
2020-04-29 16:57:08
238
原创 JAVA定时任务ScheduledThreadPoolExecutor&Quartz配置
JAVA ScheduledThreadPoolExecutorjava.util.concurrent.ScheduledThreadPoolExecutor#schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit)java.util.concurrent.ScheduledThreadPoolExecutor#sch...
2020-04-29 12:49:22
1489
原创 国内 Maven 代理源
仓库名称代理源地址使用地址centralhttps://repo1.maven.org/maven2/https://maven.aliyun.com/repository/central 或 https://maven.aliyun.com/nexus/content/repositories/centraljcenterhttp://jcenter.bintr...
2020-04-28 16:34:25
1040
原创 Java内核级线程测试&内核级线程与用户级线程区别
用户级线程有关线程管理的所有工作都由应用程序完成,内核意识不到线程的存在. 应用程序可以通过使用线程库设计成多线程程序. 通常,应用程序从单线程起始,在该线程中开始运行,在其运行的任何时刻,可以通过调用线程库中的派生例程创建一个在相同进程中运行的新线程。用户级线程仅存在于用户空间中,此类线程的创建、撤销、线程之间的同步与通信功能,都无须利用系统调用来实现。用户进程利用线程库来控制用户线程。由于...
2020-04-28 16:32:28
1316
原创 Spring Core Resource 随手笔记
Spring Core ResourceResource Interface重要方法:主要子类UrlResourceClassPathResourceFileSystemResourceServletContextResourceInputStreamResourceByteArrayResourceResourceLoaderResourceLoaderAware接口Resource Inte...
2020-04-26 18:05:01
278
原创 Spring Core IOC 随手笔记
Spring Core IOC 随手笔记Spring 标签P-NameSpaceC-NameSpacedepends-onidrefnullSpring bean 范围prototypeThe request, session, application, and websocket自定义ScopeSpring Bean 自定义特性生命周期回调ApplicationContextAware and ...
2020-04-26 17:08:48
363
原创 Java并发之CyclicBarrier & CountDownLatch
Java并发之CyclicBarrier & CountDownLatchCountDownLatchCyclicBarrierCODECountDownLatch“同生共死” 用于保持线程间的同时开始,初始化一个整形的信号量,每个信号再开始之前 使信号量减一,当信号量不为0时,所有线程被阻塞,直到最后一个线程使信号量为0。使其达到线程同时发生。相比 Semaphore,CountDo...
2020-04-22 23:39:41
221
原创 Java并发编程 Semaphore 和 Exchanger
这里写目录标题Semaphore(信号量????)Exchager(交换者)代码Semaphore(信号量????)用于线程同步,控制并发的工具类操作:初始化构造函数指定并发的数目(permits)减少acquire()/ acquire(int size) 用于减少可用的并发数,tryAcquire() 返回此次此刻是否有可用的资源、/tryAcquire(long timeou...
2020-04-22 17:04:45
190
原创 JAVA实现 红黑树与 二叉平衡树(AVL)
这里写目录标题平衡二叉树(AVL)红黑树(BR)测试代码平衡二叉树(AVL)平衡二叉查找树:简称平衡二叉树。由前苏联的数学家Adelse-Velskil和Landis在1962年提出的高度平衡的二叉树,根据科学家的英文名也称为AVL树。它具有如下几个性质:可以是空树。假如不是空树,任何一个结点的左子树与右子树都是平衡二叉树,并且高度之差的绝对值不超过1import org.slf4j...
2020-04-21 13:08:08
425
1
原创 乐观锁,悲观锁介绍及常见锁算法
锁类型悲观锁事事皆总作最坏的打算,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲...
2020-04-15 21:00:02
413
原创 Kafka 客户端 Consumer 常用配置
分类消费者组(consume grou)独立消费者(standalone consume)介绍:一个消费者组可以包含多个消费者,对于主题中的消息同一个消费者组的每个消费者消费一部分。也就是说,所有的消费者消费的消息合在一起才是一个主题的完整消息。这种消费者和消费者组的设计可以让整体的消费能力具有横向伸缩性,比如在主题消息量非常大的情况下,单个消费者处理该主题会非常吃力,可以增加更多的消...
2020-04-14 13:15:59
1787
原创 Kafka 客户端 Produce 常用配置
配置KafkaProduce 线程安全配置类值作用demoorg.apache.kafka.clients.CommonClientConfigs#BOOTSTRAP_SERVERS_CONFIGbootstrap.servers配置Kafka 服务器地址信息localhost:9092,localhost:9092org.apache.kafka.cl...
2020-04-13 17:55:18
1360
原创 C复习 处理器与库c4
预处理, 展开头文件/宏替换/去掉注释/条件编译 (test.i main .i)编译, 检查语法,生成汇编 ( test.s main .s)汇编, 汇编代码转换机器码 (test.o main.o)链接 链接到一起生成可执行程序 a.out 预处理名称 意义 #define 宏定义 #undef 撤销已定义的宏 ...
2019-07-18 22:13:03
168
原创 C复习 数据结构c3
复合字面量(C99)语法,把类型名放到圆括号里面,后面紧跟一个花括号扩起来的初始化列表。int *a = (int []){1,2};#include <stdio.h>struct argv{ char a[64]; int b;};int func(struct argv a){ printf("argv.a=%s argv.b=%d\n",...
2019-07-18 22:12:25
340
原创 C语言复习内存 c2
malloc函数 (动态内存分配-memory allocation)void *malloc(size_t size);//size 为需要分配的内存空间的大小,以字节(Byte)计。分配成功返回指向该内存的地址,失败则返回 NULL。malloc函数头文件#include <stdlib.h>或者#include <malloc.h>free()...
2019-07-18 22:11:32
253
原创 C复习c1
函数原型当函数声明和定义出现在主函数之后的,我们需要在函数之前(在函数调用以前)加函数原型声明。函数原型声明,指明 函数名字,返回类型,有几个参数,这几个参数是什么类型。不需要函数体。也不需要形式参数的名字(当然,写了形式参数的名字也不算错)。分号作原型声明 结束符当函数定义出现在主函数之前,就不需要函数原型声明。函数定义,必须有函数体。同时有 函数名字,返回类型,有形式参数的类型和名...
2019-07-18 22:10:42
268
关于http2 介绍pdf 文档
2020-05-17
cglib .jar
2017-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人