自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ArrayList源码解析

重学Java—ArrayList可变数组初始化默认值动态扩容创建方式fail-fast机制添加和删除sublist总结)ArrayList 是 java Collection框架中比较常用的数据结构,其继承自 AbstractList,实现了 List 接口。底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的这里其实有一个比较容易被问到的细节

2021-05-03 12:20:10 1177 5

原创 IOC技术在前端项目中的应用内含实现

文章目录背景什么是IOC如何实现一个IOC第一步:实现一个容器第二步:用好装饰器第三步:使用容器扩展和展望最后背景前端发展至今已经过去30余年,前端应用领域在不断壮大的过程中,也变得越来越复杂,随着代码行数和项目需求的增加,内部模块间的依赖可能也会随之越来越复杂,模块间的 低复用性 导致应用 难以维护,不过我们可以借助计算机领域的一些优秀的编程理念来一定程度上解决这些问题,接下来要讲述的 IoC 就是其中之一。什么是IOC其实学过java的就一定会知道java中有一个非常著名的框架叫做springb

2021-01-23 15:15:50 588 1

原创 实战微软新一代RAG:GraphRAG

1.它是基于LLM构建的知识图谱,在构建过程中会消耗大量的Token,其中本次测试2.9w花费了大概13w token。2.它支持2种搜索方法,局部和全局,全局效果最好,但是对模型的token处理能力有要求。3.框架仅支持OpenAI SDK协议的的LLM,国内目前只有千问和月之暗面可以,如果精力充足的网友也可以基于OpenAI的协议魔改自己想要接入的大模型,其实就是封装一个网关。

2024-07-21 02:36:19 1344

原创 Tars请求过程与协议分析

是从生成的.tars.go开始触发,obj.servant.TarsInvoke为入口开始执行,将参数进行组装传递到Invoke,在doInvoke中执行Rpc调用,通过adapterProxy发送Rpc调用,通过send发包给对应的RPC服务。对应的发送流程图如下。执行完成ReadForm之后,我们就可以得到一个基本的请求结构信息了,比如调用的是哪个,方法是哪个,超时情况,都一一描述清楚。2.根据类型去执行对应的解析器,分别是两种部分的情况,string1 为单行字符串,string4为多行字符串。

2023-03-31 00:30:43 344 1

原创 SpringBoot实现自己的日志服务

如何设计一个优秀而又可靠的日志服务,是一直以来都是一个很难的课题,写本文的目的起源于大学时期做的一个项目,那时候后台部署到阿里云上,每次遇到Error的问题的时候都需要登陆服务器查看,非常的麻烦,于是我就突发奇想为什么不对Spring的日志进行拦截,展示到前端界面呢?于是就产生了这个项目。

2023-03-25 00:53:07 915

原创 Gin源码分析-接口请求返回过程分析

Gin作为一个框架其能力是非常全面的,通过Json的Render方法我们可以看到,不仅仅支持原生的Json转换,还支持各种特殊情况的Json,比如asciiJson,SecureJson等,基本可以应对所有的日常开发情况了。Render 这里的Render入参数为接口类型,这里就涉及到,Render目录下的各种实现了,大部分的开发基本都是局限于JSON了,我们这里的分析就以JSON为例,具体流程如下。Gin支持JSON,XML,String,Object,Data,HTML,YML。2.执行渲染并返回。

2023-03-15 08:08:58 445

原创 Gin源码分析-启动过程详解

gin的初始化十分简单,我们通过如下请求就可以完成一个简单的gin服务的启动。

2023-03-08 23:24:24 344

原创 在线文档技术-编辑器篇

这是在线文档技术的第二篇文章,本文将对目前市面上所有的主流编辑器和在线文档进行一次深入的剖析和研究,从而使大家对在线文档技术有更深入的了解,也让更多人能够参与其开发与设计中来。

2023-02-26 01:04:13 1984

原创 在线文档技术概览-历史与发展篇

写到这,在线文档的历史也介绍的差不多了,时间关系,每一个阶段都写的比较简单,不过我相信大家通过这个简单的描述也能够大概清楚在线文档的历史是如何的。晚安各位。

2022-12-09 00:21:29 876

原创 使用云API管理你的云服务器

今年来业务上云成为了主流,越来越的业务选择了,将自己的服务部署到了云上,而云上运维则成了必不可少的东西,比如我的机器突然卡死了,然后我没有办法即时去到控制面板去操作,如何快速的重启,部署成了关键,当然扩容也是一样,如果不想使用平台的服务去扩容,我们也可以通过云API去完成操作。选择完Intance之后会出现如下代码,这里我们直接拿到idea里面跑起来即可,这里这里的AKSK需要使用自己的。选择对应的API进入界面,你可以看到所有的可以使用API来操作的页面接口,几乎覆盖了所有的云有关的业务。...

2022-08-10 08:32:16 849

原创 从0开始实现一个代理池

通过上述的编写,我们就完成了代理池的开发工作,我们可以通过main中的配置完成运行,main的配置如下所示。\nversion运行./main-typeserver//服务端主要提供暴露给使用方调用的接口./main-typeschedule//开启定时任务,主要负责拉取代理并进行校验代码仓库https//github.com/guanjiangtao/proxy_pool大佬们路过给个star吧httpshttps。...

2022-07-18 04:35:14 319

原创 后端面试高频问题总结 二

Java 代码执行流程?JVM内存模型程序计数器:和计算机的程序计数器类似。方法区:线程共享。存储类信息、常量、静态变量、即时编译器编译后的代码。常量池位于方法区中。方法栈(JVM Stack):线程私有。存储局部变量表、操作栈、动态链接、方法出口,对象指针。堆区:线程共享。所有的对象实例以及数组都要在堆上分配。回收器主要管理的对象。本地方法栈:线程私有。为虚拟机使用到的Native 方法服务。如Java使用c或者c++编写的接口服务时,代码在此区运行。虚拟机堆栈:描述的是java方法执行的内

2022-05-22 12:51:49 273

原创 ibox请求解密逆向研究

ibox请求解密逆向研究最近在一个位陌生网友的强烈要求下,我开始了对ibox这个平台进行研究,大约花了4小时左右终于重现了加密,解密的全过程,现分享如下。总结来说ibox技术分为两个阶段。阶段一:普通网站阶段,简单来说就是后台能力有待提高的阶段,该阶段仅靠一个滑块验证码在做爬虫防御,是杯水车薪的。阶段二:最近ibox做了一次升级,从源码层面防御了这些爬虫大佬,不过本次升级并不是不可解的,对于专业人士来说仍然是非常简单的。请求流程如下:发起请求通过debug可以发现,请求经过两个过程:加密 -

2022-05-21 23:27:46 2636 28

原创 后端面试高频问题总结 一

常见编程知识点整理参考文献https://www.cnblogs.com/mengxinJ/p/14045520.htmlhttps://zhuanlan.zhihu.com/p/34288735https://zhuanlan.zhihu.com/p/42602265https://www.cnblogs.com/luoxn28/p/5932648.html一次从网址输入到页面渲染完成,所经历的全部过程?第一步:浏览器从缓存中查找,是否存在这个域名的,如果存在直接拿出对应的ip去对应服务器请

2022-05-21 00:59:42 568

原创 Springboot + vue 实现文件上传

文件上传是我们作为开发者在日常工作中经常遇到的一个需求,各个流行的组件库中也都有现成的组件可以很方便的直接调用。具体的用法不再赘述,这里笔者主要展示如何打通前后台的上传逻辑。这里我们的框架使用Spring,前端使用的是ElementPlus,这里我们就不多做描述。细节如下:前端支持文件上传(主动)。后端接受,并存储。本教程并不是初级教程,所以略过环境安装部分,有需要的可以自行伴读。前端部分前端我们需要引入Element-Plus和axios来完成本次上传,vue代码如下所示。首先actio

2022-05-08 23:09:13 4960

原创 Tars环境搭建(超详细版)

Tars环境搭建(超详细版)简介Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。Tars是将腾讯内部使用的微服务架构TAF(Total Application Framework)多年的实践成果总结而成的开源项目。Tars这个名字来自《星际穿越》电影中机器人Tars, 电影中Tars有着非常友好的交互方式,任何初次接触它的人都可以轻松的和它进行交流,同时能在外太空、外星等复杂地形上,超预期的高

2022-05-06 01:57:07 4836 2

原创 搭建一个https二级代理(完整可用版)

本文的背景是,因为需要,我们需要搭建多层代理服务用于消息转发,同时也方便通过跳板机2进行访问互联网,话不多说,上主菜。0x1 代理选择现在的代理服务器非常多,如何选择也是一门学问,作者在写这篇文档之前已经尝试过三种代理软件,最终才实现相关需求。谈到代理,大家首先会想到nginx这一经典的代理服务器,但是很不好的是,它的upstream配置一直不生效,导致没办法实现多层代理(当然也许是我菜~);tinyproxy,在踩坑nginx之后,我们又想到了tinyproxy,过程很顺利,tinyproxy实

2022-03-21 11:18:10 8771 2

原创 关于Java面向对象的理解

前言这是Java系列的第二篇文章,其实在年初的时候我就给我自己定下了目标,要重新走一遍所有Java有关的知识,所以应该会写很多,会把我的面试经历,日常踩坑都写进去,有兴趣的大佬可以看看。面向对象Java是一款优秀的面向对象的编程语言,既然是面向对象,那么我们必须清楚面向的对象是什么?面向的对象在哪里?首先我们来解答一下什么是面向对象,面向对象程序设计的主要精神是将存在于日常生活中的对象概念应用在软件设计的发展模式中,着重于对象的分解与相互作用,重点是强调程序代码的可读性、可重复使用性与扩展性,让程序

2021-04-22 15:53:54 1914

原创 Java基础知识总结

前言Java是一款面向对象编程的语言,在国内被广泛应用于各类系统的开发之中,面向对象编程(OOP)具有多方面的吸引力。对管理人员,它实现了更快和更廉价的开发与维护过程。对分析与设计人员,建模处理变得更加简单,能生成清晰、易于维护的设计方案。对程序员,对象模型显得如此高雅和浅显。此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务。每个人都可从中获益,至少表面如此。类型Java的数据类型分为字符类型,布尔类型,浮点数类型,整数类型。类型图如下所示:按数据类型的存储单位以及数值表示范围整

2021-04-22 15:52:58 367

原创 Webpack知识点一(Tree Shaking)

Tree ShakingTree Shaking 可以用来剔除 JavaScript 中用不上的死代码。它依赖静态的 ES6 模块化语法,例如通过 import 和 export导入导出。 Tree Shaking 最先在 Rollup 中出现,Webpack 在 2.0 版本中将其引入。为了更直观的理解它,来看一个具体的例子。假如有一个文件 util.js` 里存放了很多工具函数和常量,在 main.js 中会导入和使用 util.js,代码如下:util.js源码:export function

2021-03-30 10:20:26 161

原创 JavaScript内存相关知识点(内存泄漏,垃圾回收)

这是一篇关于前端内存知识的博文,主要讲述了什么是内存?内存生命周期,内存泄漏,解决与避免方案。什么是内存?在硬件级别上,计算机内存由大量触发器组成。每个触发器包含几个晶体管,能够存储一个位。单个触发器可以通过唯一标识符寻址,因此我们可以读取和覆盖它们。因此,从概念上讲,我们可以把我们的整个计算机内存看作是一个巨大的位数组,我们可以读和写。但是在JavaScript中我们无需在意内存的读写操作,因为这些Chrome都会帮我们处理好,我们需要做的就是避免变量或属性不能被正常回收即可。生命周期无论是

2021-03-30 10:18:50 199

原创 计算机网络知识点总结三

概述本章节主要是对开发面试中经典的面试问题进行总结分析,同时也是该系列的最后一篇。问题1)请简单说一下TCP/UDP的区别?TCP面向连接,UDP面向非连接即发送数据前不需要建立连接。TCP提供可靠的服务,UDP无法保证。TCP面向字节流,UDP面向报文。TCP数据传输慢,UDP数据传输快。TCP传输不限制大小,UDP单次传输报文有限制(64K)。2)请你说说你了解的端口以及对应的服务端口服务21FTP(文件传输协议)22SSH25SMTP(简单

2021-03-30 10:16:02 156

原创 计算机网络知识点总结二

Para 0该部分主要讲诉了网络安全,HTTP头部,请求类型等模块的基本概念和高频考点。Para 1 请求类型HTTP请求类型有很多,比如get,post等,下面是一些常见请求的名称和对应的含义。get:请求指定的页面信息,并返回实体主体post:向指定资源提交数据并进行处理请求。数据被包含在请求体中,post请求可能会导致新的资源的建立或已有资源的修改head:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头options:允许客户端查看服务器的性能put:从客户端向服务

2021-03-30 10:14:56 154

原创 计算机网络知识点总结一

Para 0 概述第一部分主要包含了一个网址的解析过程,OSI模型,TCP模型的讲解,还有TCP/UDP协议的分析,以及常见状态码。Para1 从输入一个网址开始不知道各位是否有个好奇?浏览器是如何根据网站找到对应的服务器并返回内容给我们的。如果你是一个普通人,你可以把这篇文章当作科普来看,如果你是一个软件从业者,你需要对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。Para 1.1 输入网址这里以百度为例子

2021-03-30 10:13:57 296

原创 react源码解析笔记一

0 前言本React系列文章是基于React最新的代码仓库进行分析,也许和老版本有些许不同,大佬们可酌情观看。1 Component && Pure ComponentComponent和PureComponent作为所有学习React开发的人的入口,其对我们来说还是比较重要的,所以本篇文章选择从此处作为切入进行分析。源码位于:ReactBaseClasses.js文件。该文件更多的类似于抽象类的作用,对很多进行定义,然后提供给外部调用,真正的细节实现并不在此处。1.1 Comp

2021-03-24 13:23:41 208

原创 基于PaddlePaddle实现文本分类

基于PaddlePaddle实现文本分类0.前言1.实现一个AI的步骤1.1 确定需要做啥1.2 选取框架1.3 实操-数据预处理1.4 实操-生成训练数据集1.5 实操-其余部分1.6 介绍一下本次文章2.文件介绍3.核心算法3.1 cnn算法4.操作步骤4.1 预处理数据4.2 生成数据集4.3 执行训练4.4 执行预测4.5 框架安装方法4.6 代码测试模型:infer_model5.总结0.前言写在最前, 最近2年AI很火,各行各业都想学,本文主要分享的是一个利用神经网络对英文文本分类的介绍,这

2021-02-04 20:12:29 1850

原创 从0开始搭建低代码平台系列(系统设计与规划)

前言什么是低代码?低代码开发是种通过可视化进行应用程序开发的方法,使具有不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程序。这些工具通过减少手工编码的工作量来帮助快速开发应用程序,提高开发效率。这是从网上抄来的大概念,这里我来谈谈我对低代码的看法,首先低代码有么有存在的必要,答案是有的。这里方便分析就拿一个管理系统为例子,也许A公司需要一个管理系统,公司接下了,然后后面B公司也需一套类似的系统,公司有需要基于框架去定制,其实我们通过分析不难发现,A公司

2021-02-01 20:39:33 9191

原创 探索微软开源Python自动化神器Playwright

探索微软开源Python自动化神器Playwright相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具。写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑。虽然selenium有完备的文档,但也需要一定的学习成本,对于一个纯小白来讲还是有些门槛的。同时最近被自动化折磨得非常痛苦,为了实现e2e测试,我们花大量的时间来编写e2e代码,同时此类代码也非常不稳定,经常挂掉,这一点来说是非常的不友好的。作为一个“懒人”,我肯定不愿意花大量的时间在编写测

2020-12-17 01:06:04 1966 3

原创 前端实现常见机器学习算法

一:前言机器学习和深度学习发展已成未来主流,作为一个软件工程师,我们不可能不去接触,学习这类算法,前端工程师同样也应该熟悉并且掌握,这样我们才不会被淘汰。本次所有代码都将基于mljs这个库来实现。简单容易上手,适合初学者接触学习。二:前端如何做ai前端发展至今,已有数十年之久,技术迭代,框架发展日新月异前端做ai已经不是难事,node,webwebsembly等技术的加持让前端ai化成为可能。在百花齐放的ai时代,已产生无数优秀的框架和代码,其中最具有代表性的就是tensorflowjs

2020-12-06 00:36:23 1149

原创 Java学习指北—(Java概览)

1.前言​ 为什么要写这些,其实原因很简单,就是2个字—复习。编程是一门永远都需要学习的艺术,而每次学习都会有很多不同的感悟,这也是为什么我们要反复去学习的原因。​ 2020确实对于我们来说不是很友好,疫情,求职,考研复试每一项都在打击着我们的心理。而作为“运气”最好的一位同时经历了考研的落榜,和艰难的求职。​ 虽然这次春招的结局是幸运的,但是过程确实那么的艰苦。2.Java概览​ 作为一个计算机专业的科班生,掌握一门编程语言是必备的技能之一,而掌握哪一门这是我们需要去选择的。在这里我选择了Jav

2020-06-09 00:31:22 232

原创 史上最详细的hadoop安装教程(含坑点)

0.前言最近因为需要所以要安装hadoop,但是网上怎么说呢,就是很混乱,各种资料,各种安装方法,总体来说都不是很有效果,经过了3天的挣扎,收集资料,才完成了部署。1.从官网上获得对应的安装包下载地址:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz点击第一个![C:\Users\gjt\AppData\Roaming\Typora\typora-user-images](

2020-05-11 23:25:20 28656 6

原创 快速初始化SpringBoot并整合Mybatis

SpringBoot笔记-初始化一个SpringBoot项目搭建一个SpringBoot基础框架并实现mybatis的整合!文章目录SpringBoot笔记-初始化一个SpringBoot项目一些废话1.打开Idea,会出现如下界面。2.选择Create New Project,新增一个项目。3.启动之前的准备工作4.尝试写一个接口5.完善其他层(service,dao)一些废话​ 最近在...

2020-01-18 21:25:04 1012

原创 paddlepaddle实现猫狗分类

paddlepaddle实现猫狗分类文章目录paddlepaddle实现猫狗分类1.预备工作1.1 数据集准备1.2 数据预处理1.2.1 删除无用的图片1.2.2 reshape1.2.3 数据集划分1.2.4 创建数据列表2.训练2.1 模型2.2 定义训练2.3 训练3.预测4.参考文献1.预备工作​ 这是我上学期一直没有去填补的坑,之前想通过传统机器学习方法来实现,不过没做完。暑假难...

2019-07-27 22:33:52 5164 13

原创 javaclass文件可视化工具

class文件可视化工具Author:guanjt(解析class文件),Liujr(UI化)1.目录结构|—JVM​ |—ch03​ |—classpath​ |—classfile​ |—cmd​ |—main文件夹含义:cmd —— 捕获控制台输入main —— 主函数入口classfile —— *.class文件搜寻classpath —— *.clas...

2019-07-16 20:27:40 745

原创 vue+springboot实现控制台日志实时推送前台

vue+springboot实现控制台日志实时推送前台文章目录vue+springboot实现控制台日志实时推送前台1.准备工作1.1 环境准备1.2 依赖准备2.代码编写2.1 前端vue部分代码2.2 后端部分代码2.3 配置部分3.运行结果1.准备工作1.1 环境准备1.2 依赖准备2.代码编写2.1 前端vue部分代码2.2 后端部分代码2.3 配置部分3.运行结果...

2019-06-30 19:30:37 14542 37

原创 基于神经网络的文本分类算法

基于神经网络的文本分类算法文章目录基于神经网络的文本分类算法1.文件介绍2.核心算法cnn算法3.操作步骤1.预处理数据2.生成数据集3.执行训练4.执行预测5.框架安装方法6.代码测试模型:infer_model模型:infer_model1预测图片7.链接1.文件介绍create_data_start.py 文本处理方法create_data_utils.py 文本处理工具...

2019-06-16 03:32:56 7086

原创 初探Oracle全栈虚拟机---GraalVM

官方说明:GraalVM是一个生态系统和共享运行时,不仅提供基于JVM的语言(如Java,Scala,Groovy和Kotlin)的性能优势,还提供其他编程语言(如JavaScript,Ruby,Python和R)的性能优势。此外,它还支持通过LLVM前端在JVM上执行本机代码。GraalVM 1.0基于JDK 8。 上图说明了GraalVM作为开放式生态系统的体系结构。虚拟化...

2018-07-27 17:39:49 1533

原创 从迭代到java流操作

在处理集合时,我们通常会迭代遍历它的元素,并从每个元素上执行某项操作。例如,假设我们想要对某本书中的所有长单词进行计数。首先我们要将所有单词放入一个列表中:String contents = new String(Files.readAllBytes(Paths.get("alice.txt")),StandardCharsets.UTF_8);List<String> wor...

2018-07-19 21:51:04 340

原创 JAVA 基于TCP协议的一对一,一对多文件传输实现

    最近老师给我们上了多线程和TCP和UDP协议,其中一个要求就是我们用JAVA协议一个基于TCP和UDP这两种协议的一对一文件上传和一对多文件上传。    然后我就开始分析TCP和UDP这两个协议的特点,发现TCP是流传输,抓住这一点就好实现了。    现在我们需要解决一下几个问题,    1.如何确定文件名称    2.如何完成数据传输,并复原成原来的文件。    解决方案就是,对象这是个...

2018-05-25 15:13:07 4058 16

原创 跳一跳小游戏辅助(手动版本)py代码实现

注意:单纯研究游戏原理。和练习py才写的,切勿滥用。否则后果自负。核心思路就是一个勾股定理的作用。通过2次计算完成跳跃,这些包我都打了注释。。。怎么安装,包安装方法  pip install 包名字,包安装完成就是adb。。百度安装。。配置环境变量。。。#!/usr/bin/python#-*-coding:utf-8 -*-#FileN

2018-01-17 00:15:52 2713

数据库连接池架包druid-1.1.6,dbcp

数据库连接池架包,主要包含了druid和dbcp,其中druid的架包不是很全,主要dbcp的包是全的,可以使用,我自己试过。

2018-06-03

channel_v3.json

解决sublime package control 出现There are no packages available for installation 无法安装插件的问题

2018-01-09

空空如也

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

TA关注的人

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