草庐IT

时隔多年,这次我终于把动态代理的源码翻了个地儿朝天

本文内容整理自博学谷狂野架构师动态代理简介​ Proxy模式是常用的设计模式,其特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。用户可以更加结构图,自己编码完成Proxy模式。这种实现称为静态代理。​ Java提供了java.lang.reflect.Proxy类与InvocationHandler接口,配合反射,可以实现动态代理。静态代理的代理类与代理操作,都是事先编码,运行过程种无法修改代理结构。动态代理的代理与代理操作,都是在运行过程中,动态生成,可以在运行过程中,修改代理结构,符合面向对象的开闭原则。​ 最最最

时隔多年,这次我终于把动态代理的源码翻了个地儿朝天

本文内容整理自博学谷狂野架构师动态代理简介​ Proxy模式是常用的设计模式,其特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。用户可以更加结构图,自己编码完成Proxy模式。这种实现称为静态代理。​ Java提供了java.lang.reflect.Proxy类与InvocationHandler接口,配合反射,可以实现动态代理。静态代理的代理类与代理操作,都是事先编码,运行过程种无法修改代理结构。动态代理的代理与代理操作,都是在运行过程中,动态生成,可以在运行过程中,修改代理结构,符合面向对象的开闭原则。​ 最最最

怎样把文档生成二维码或者链接

在发布公众号文章时,有时候需要给用户提供一些附件下载,比如报名表或者防疫承诺书之类的文档文件。公众号没有附件相关的功能,不过我们可以把文件转成二维码或者网盘链接,或者是附件小程序链接。大部分人都知道网盘链接如何生成,在此不再赘述。本文主要介绍如何把文档生成二维码或者直接在公众号文章中嵌入附件下载链接。下面就如何把文档生成二维码或者链接分别介绍:一、把文档生成小程序链接可在文章正文中直接添加下载链接,点击附件链接就可以直接下载:操作步骤:1、上传文件先将文档/文件上传到“简文档”网站:https://iduodou.com2、复制链接点击“直达链接”下方的“复制”按钮,复制文件对应的直达链接。(

怎样把文档生成二维码或者链接

在发布公众号文章时,有时候需要给用户提供一些附件下载,比如报名表或者防疫承诺书之类的文档文件。公众号没有附件相关的功能,不过我们可以把文件转成二维码或者网盘链接,或者是附件小程序链接。大部分人都知道网盘链接如何生成,在此不再赘述。本文主要介绍如何把文档生成二维码或者直接在公众号文章中嵌入附件下载链接。下面就如何把文档生成二维码或者链接分别介绍:一、把文档生成小程序链接可在文章正文中直接添加下载链接,点击附件链接就可以直接下载:操作步骤:1、上传文件先将文档/文件上传到“简文档”网站:https://iduodou.com2、复制链接点击“直达链接”下方的“复制”按钮,复制文件对应的直达链接。(

把ChatGPT接入我的个人网站

效果图详细内容和使用说明可以查看我的个人网站文章把ChatGPT接入我的个人网站献给有外网服务器的小伙伴如果你本人已经有一台外网的服务器,并且页拥有一个OpenAIAPIKey,那么下面就可以参照我的教程来搭建一个自己的ChatGPT。需要的环境Centos7(其他服务器也行)nodejs这里主要用到了node环境,所有的代码也是由JavaScript编写安装依赖库首先需要安装OpenAI提供的js库——openai,使用npm安装即可npminstallopenai然后再安装一个用于后面管理js后台运行的库——forevernpminstallforever编写代码constWebSocke

把ChatGPT接入我的个人网站

效果图详细内容和使用说明可以查看我的个人网站文章把ChatGPT接入我的个人网站献给有外网服务器的小伙伴如果你本人已经有一台外网的服务器,并且页拥有一个OpenAIAPIKey,那么下面就可以参照我的教程来搭建一个自己的ChatGPT。需要的环境Centos7(其他服务器也行)nodejs这里主要用到了node环境,所有的代码也是由JavaScript编写安装依赖库首先需要安装OpenAI提供的js库——openai,使用npm安装即可npminstallopenai然后再安装一个用于后面管理js后台运行的库——forevernpminstallforever编写代码constWebSocke

不用花钱钱,把机器人领回家;开源 AI 套装满足你

人工智能火爆了天,但可惜的是。服务要么人家不让用,要么被墙了,要么被阉割。新时代的打工人,非常纠结。当你忙着各种内测,忙着各种捣鼓账号的时候,开源届的AI,也已经相当的繁荣昌盛了。其实,一台PC机,就可以搭建各种服务,不联网,把机器人领回家。唯一让人感觉无奈的是,要想玩的爽,还是需要一块牛X一点的显卡。刚刚经历了挖矿的洗礼,又要接受AI的鞭挞。显卡(尤其是N卡),真是的生不逢时。(注:本文图片,都是AI绘制的)机器人绘画stable-diffusion-webui要说机器人绘画,最流行的当然是StableDiffusion。我们一般使用webui作为前端界面。https://github.co

不用花钱钱,把机器人领回家;开源 AI 套装满足你

人工智能火爆了天,但可惜的是。服务要么人家不让用,要么被墙了,要么被阉割。新时代的打工人,非常纠结。当你忙着各种内测,忙着各种捣鼓账号的时候,开源届的AI,也已经相当的繁荣昌盛了。其实,一台PC机,就可以搭建各种服务,不联网,把机器人领回家。唯一让人感觉无奈的是,要想玩的爽,还是需要一块牛X一点的显卡。刚刚经历了挖矿的洗礼,又要接受AI的鞭挞。显卡(尤其是N卡),真是的生不逢时。(注:本文图片,都是AI绘制的)机器人绘画stable-diffusion-webui要说机器人绘画,最流行的当然是StableDiffusion。我们一般使用webui作为前端界面。https://github.co

每日算法之把数组排成最小的数

JZ45把数组排成最小的数描述输入一个非负整数数组numbers,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组[3,32,321],则打印出这三个数字能排成的最小数字为321323。1.输出结果可能非常大,所以你需要返回一个字符串而不是整数2.拼接起来的数字可能会有前导0,最后结果不需要去掉前导0具体做法step1:优先判断空数组的特殊情况。step2:将数组中的数字元素转换成字符串类型。step3:重载排序比较为字符串类型的x+ystep4:将排序结果再按照字符串拼接成一个整体。代码packagemid.JZ45把数组排成最小的数;importjava

每日算法之把数组排成最小的数

JZ45把数组排成最小的数描述输入一个非负整数数组numbers,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组[3,32,321],则打印出这三个数字能排成的最小数字为321323。1.输出结果可能非常大,所以你需要返回一个字符串而不是整数2.拼接起来的数字可能会有前导0,最后结果不需要去掉前导0具体做法step1:优先判断空数组的特殊情况。step2:将数组中的数字元素转换成字符串类型。step3:重载排序比较为字符串类型的x+ystep4:将排序结果再按照字符串拼接成一个整体。代码packagemid.JZ45把数组排成最小的数;importjava