自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(281)
  • 收藏
  • 关注

原创 学习入门 chatgpt原理 一

ChatGPT(Chat Generative Pre-training Transformer) 是一个 AI 模型,属于自然语言处理( Natural Language Processing , NLP ) 领域,NLP是人工智能的一个分支。NLP(自然语言处理)是指,让计算机来理解并正确地操作自然语言(人们日常生活中接触和使用的英语、汉语、德语等等),完成人类指定的任务,比如关键词抽取,文本分类,机器翻译,对话系统(聊天机器人,也是chatgpt完成的工作)

2024-06-26 23:00:24 682

原创 java框架 2 springboot 过滤器 拦截器 异常处理 事务管理 AOP

生成一个代理类,DeptServiceProxy,然后重新list方法,执行AOP类的逻辑,最后如上,通过@Autowired注入的deptService就不是DeptServiceImpl,而是。将其改为REQUIRES_NEW,在a中调用b的时候,会先挂起a的事务,然后起一个b的事务,当a失败后,a执行的逻辑会回滚,但是b方法执行的逻辑如果没报错,会保留。比如在a中调用b的方法,当a失败后,事务回滚,会导致b方法执行的逻辑也会回滚,事务传播行为默认是有则加入,也就是b方法会加入当前a方法的事务中。

2024-03-17 20:36:06 972

原创 java基础(6) IO[下] 线程(补充) XML Servlet

PrintStream和OutputStream相比,除了添加了一组print()/println()方法,可以打印各种数据类型,比较方便外,它还有一个额外的优点,就是不会抛出IOException,这样我们在编写代码的时候,就不必捕获IOException。Reader是IO提供的另一个输入流接口,跟InputStream区别是,InputStream是以字节流为准,单位是byte,而Reader是一个字符流,单位是char。这个抽象类定义的一个最重要的方法就是void write(int b)

2024-03-17 20:36:00 852

原创 java(框架) springboot-1 基础使用+mybaits使用

后端系统有很多对象,这些对象之间关系错综复杂,如果手动创建并且组装依赖关系很麻烦,所以提供了IOC机制。IOC机制是在calss标识哪些可以被注入,他的依赖是什么,然后从rookie开始扫描这些对象和依赖,自动创建和组装对象。IOC解决了后端系统的对象依赖关系错综复杂的痛点问题。

2024-03-08 19:35:45 1140

原创 Java基础(5) 泛型 日期和时间 线程 File-输入流

并且,我们注意到,synchronized锁住的对象是this,即当前实例,这又使得创建多个Counter实例的时候,它们之间互不影响,可以并发执行。如果有两个线程,比如银行系统,他有一个Bank对象,一个线程用来存,一个线程用来取,因为线程的操作时机是不确定的,就会导致存取时候得到的银行余额并不是最新的,导致出错。Java的泛型是由编译器在编译时实行的,编译器内部永远把所有类型T视为Object处理,但是,在需要转型的时候,编译器会根据T的类型自动为我们实行安全地强制转型。

2024-03-04 21:32:38 929

原创 java基础(4)注解,集合,

接着有一些可以用于注解的注解,成为元注解。如@Target定义该注解能注解什么东西类或接口:ElementType.TYPE;字段:ElementType.FIELD;方法:ElementType.METHOD;构造方法:ElementType.CONSTRUCTOR;方法参数:ElementType.PARAMETER。@Retention定义该注解的生命周期,如上就是定义在runtime的时候运行,因为我们自己写的注解一般在runtime的时候执行。

2024-03-01 23:02:43 994

原创 java基础(3) 异常处理 -反射

java异常+反射

2024-02-12 10:23:15 804

原创 java基础(2) 面向对象编程-java核心类

java体系学习2,面向对象编程基础+java核心类

2024-02-09 10:43:09 1007

原创 java 基础 (1)简介-程序基础-流程控制-数组操作

java学习第一篇

2024-02-06 19:40:34 992

原创 初探qiankunjs

qiankunjs源码浅读

2023-08-08 09:59:43 325

原创 webpack-SplitChunksPlugin学习

webpack-splitChunksPLugin学习

2023-05-31 16:16:59 927

原创 react原理-transition概念

react-transition原理

2022-12-11 16:02:52 1105 1

原创 react context原理

react context原理

2022-11-26 20:25:41 1243

原创 react事件系统(新版本)

react事件系统(新版本)

2022-11-23 15:26:09 579

原创 react事件系统(老版本)

react事件系统

2022-11-22 21:37:40 697

原创 计算机网络(3)数据链路层

数据链路层的基本概念结点:主机或者路由器都成为结点链路:网络中两个节点之间的物理通道,链路的传输介质主要有双绞线,光纤和微波。分为有线链路和无线链路。主要是物理通道。数据链路:网络中两个节点之间的逻辑通道,控制数据传输协议的硬件+软件+链路 = 数据链路帧:数据链路层的协议数据单元,封装网络层的数据报。数据链路层就是负责通过一条链路,从一个节点向另一个节点(该节点必须是物理链路直接相连)传送网络层交下来的数据包。就好像搬运工的角色。数据链路层功能概述在物理层提供服务的基础上,向网络层

2022-06-08 08:30:35 2528 1

原创 react源码debugger-17,18版本的事件更新流程

react事件更新

2022-06-05 21:26:54 681

原创 react源码debugger-各个hooks的逻辑实现(useState和useEffect)

了解react的整体流程,会有助于理解本文。hooks是什么?要了解hooks是什么,我们得先想知道react怎么执行函数组件。先看看函数组件的fiber是什么?const fiber = { type: f App(){}, //函数本身, memoziedState: {}, //hooks链表 updateQueue: {}, //effects链表 ....}对于函数组件,我们现在只需要关注他这几个属性就行了首先看到renderWithHooks函数,他是执

2022-05-29 22:59:30 447

原创 计算机网络(2)物理层

物理层基本概念物理层解决如何在连接各种计算机的传输媒体上传输数据比特流。而不是指具体的传输媒体。主要任务:确定与传输媒体接口的一些特性=》定义标准定义标准:不同的厂家在物理层定义的标准下实现不同的但是可以连接的接口。机械特性:定义物理连接的特性,规定物理连接时所采用的规格,接口形状,引线数目,引脚数量和排列情况。如电气特性:规定传输二进制位时,线路上信号的电压范围,阻抗匹配,传输速率和距离限制等。功能特性:某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。规程特性:定义各条

2022-05-29 12:10:24 1320

原创 一库让你快速搭建redux。auto-redux,跟普通hooks一样使用redux。

前言:借鉴于组内大佬开发的一个库的思路,模拟实现一个类似的。redux使用过redux的同学应该知道,redux每一个状态都需要编写特定的action和reducer,通过react-redux提供的hooks,useDispatch,useSelector去获取状态,派发aciton。比较麻烦。基于需要编写action和Reducer这一点,开发一个可以根据最初的state,自动生成action,reducer,我们使用状态的时候只需要跟useState等普通hooks一样。auto-redux介绍

2022-05-24 23:33:16 205

原创 计算机网络(1)

概念计算机网络:是一个将分散的具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。计算机系统可以是手机,电脑等等。通信设备可以是路由等等。计算机网络,通信设备,线路等搭建成一个架子。而通过软件才能实现资源共享。就好比前三个组成一个毛胚房,不能住人,而通过软件装修之后,才可以住人。计算机网络是互联的,自治的计算机集合。互联:互联互通,通信链路。自治:无主从关系。计算机网络功能1数据通信(连通性)2 资源共享【 硬件(打印机), 软

2022-05-24 09:03:43 578

原创 react源码debugger-commit阶段的完成

commit阶段上节讲到了rootFiber完成completeWork的时候,返回了一个状态,为RootInCompleted,表示工作完成。调用finishConcurrentRender方法,该方法会调用commitRoot,开启commit阶段。现在回顾一下,我们的fiber结构是// App组件const App: React.FC = () => { return <DD />;};// DD组件class DD extends Component {

2022-05-15 21:49:50 402

原创 react源码学习(2)

继上一篇react源码学习(1)创建FiberRoot和rootFiber//render调用方法function legacyRenderSubtreeIntoContainer( parentComponent: ?React$Component<any, any>, // mount是null children: ReactNodeList, // ReactElement container: Container, //容器 forceHydrate: boole

2022-05-15 00:34:28 244

原创 react源码学习(1)

jsxjsx会被转为createElement方法,看下源码这个方法export function createElement(type, config, children) {}接受三个参数:type元素类型,对于普通元素,就是div p ,对于函数组件,就是 函数本身, 对于类组件,就是类本身config 配置属性,比如ref, key, style…children 子元素这个方法的主要作用就是:1 分离props属性和特殊属性 let propName; const

2022-05-14 23:19:28 375

原创 计算机网络专题

osi七层模型七层模型和五层模型的对比open System Interconnection 适用于所有网络分层带来效能,将复杂的流程分解为几个功能相对单一的子进程。就好比以前项目之后服务器渲染,现在都分为了前端后端等。从下往上:物理层: 网卡,网线数据链路层: 交换机(传输数据,确认帧,发错重传)(数据帧)网络层:路由器(处理网络间路由)(数据包)传输层: TCP/UDP,提供可靠的连接传输数据功能(在不可靠的网络层上建立可靠的传输)。(数据段)会话层:验证,会话管理,维护应用之间通信,

2022-05-12 21:25:31 184

原创 从零实现一个脚手架

node支持esModule的两种方式:通过webpack搭建环境将webpack的target设为node,表示使用的是node环境,这样就可以使用node的一些内置模块,比如path。mjs第二中就是将js文件改为mjs。然后直接执行...

2022-05-09 22:54:53 632

原创 自动构建 grunt gulp

常用的自动化构建工具GruntGulpFlsGrunt基本用法Grunt的配置方法initConfig支持注册一些参数。module.exports = (grunt) => { grunt.initConfig({ foo: { bar: 213 } }) grunt.registerTask('test',()=>{ const bar = grunt.config('foo

2022-05-05 23:37:48 488

原创 掘金小课《React进阶实战指南》笔记

阅读了掘金小课《React进阶实战指南》,做的笔记加自己的一些总结。部分资源来自掘金小课《React进阶实战指南》认识JSXJsx统统被转为React.createElement,createElement参数:第一个参数:如果是组件类型,会传入组件对应的类或函数;如果是 dom 元素类型,传入 div 或者 span 之类的字符串。第二个参数:一个对象,在 dom 类型中为标签属性,在组件类型中为 props 。其他参数:依次为 children,根据顺序排列。如<div>

2022-05-05 15:36:57 3454

原创 Yeoman

Yeomanyeoman官网Yeoman 是一个通用的脚手架系统允许创建任何的 app 。它可以迅速的搭建一个新项目,并且能够简化了现有项目的维护。使用步骤:1 明确需求 ( npm i -g Yo)2 找到合适的Generator3 全局范围安装Generator (npm i -g generator-node)4 通过Yo 运行对应的Generator( Yo node)5 通过命令行交互填写选项、6 生成项目结构自定义GeneratorGenerator实际上就是一个

2022-05-04 21:55:05 625

原创 js性能优化

JS性能优化内存内存:由可读写单元组成,表示一片可操作空间。管理:人为的操作一片空间的申请,使用和释放。内存管理:开发者主动申请空间,使用空间,释放空间等。js的垃圾js的内存管理是自动的。对象不再被引用时就是垃圾。对象不能从根上访问到时就是垃圾。(js的根可以理解为全局变量对象)GC算法垃圾回收机制的简写GC可以找到内存中的垃圾,并释放和回收空间。算法就是工作时查找和回收所遵循的规则。优点:发现垃圾立即回收。最大限度的减少程序暂停。缺点:循环引用对象无法回收时

2022-05-02 00:20:21 1969

原创 ECMAScript

ECMAScriptECMAScirpt与js的关系ECMAScript是一个脚本语言规范,通常看作是js的标准规范,但是js其实是ES的扩展语言。在ES钟,只是提供了最基本的语法,停留在语言层面。而js是实现了ES的标准,并且在基础之上实现了其他的功能。在浏览器中,js = ES + webApis(BOM,DOM)在node中,js = ES+nodeApis(fs,net,etc…)...

2022-04-30 23:57:49 153

原创 前端脚手架开发(1)

脚手架实现原理当我们在终端输入vue create xx的时候终端会去全局环境变量中,找到vue指令的方法查看create-react-app的位置,所有通过npm -g安装的包都会放入该目录下。在终端输入create-react-app之后、终端解析命令终端在上述的环境变量中找到creat-react-app命令脚本window在C:\Users\Administrator\AppData\Roaming\npm可以找到create-react-app.cmd,如上图,这是一个软链接

2022-04-30 21:35:38 1026

原创 dumi组件库打包总结

最近在做页面抽成组件然后发布,期间也是遇到了很多问题和坑,现在顺便分享一下。dumi官网dumi为组件开发场景而生的文档工具,这里注重分享打包的过程,fatherdumi使用father打包,father文档1 使用rollup打包的时候报错。father提供了几种打包的方式,umd, cjs, esm。也支持使用rollup或者babel来打包成cjs/esm。一开始选择的是rollup来打包。出现的问题:rollup只支持esmodule,不支持commonjs,如果你的组件库引用

2022-04-26 17:34:49 4149 3

原创 jwt+nest.js,实现登录挤出功能

什么是JWTJWT的全称是JSON Web Token。一个jwt由三部分构成:Header,payload,Signature(签名)。Header部分主要规定了token的加密方式。如{alg: "xx", type: "JWT"}payload是token中包含的重要信息。Signature,就是header的base64的值+payload的base64+密钥组成的HS256算法,左边就是生成的token。JWT特点:防止CSRF,跨站请求伪造。适合移动应用无状态

2022-04-18 23:23:12 1342

原创 基于net模块,从零实现websocket(ws模块)

WebsocketWebsokcet是H5开始提供的一种浏览器与服务器进行全双工通讯的网络技术通俗的讲,就是在客户端和服务器有一个持久的链接,两边可以在任意时间开始发送数据。属于应用层协议,它是基于TCP传输协议的,并复用HTTP的握手通道。websocket连接websocket服用了http的握手通道。具体就是,客户端通过http请求,与websocket服务端协商升级协议,协议升级完毕之后,后续的数据交换则遵守Websocket的协议。请求体中Upgrade表示升级为webso

2022-04-17 15:52:16 3200 1

原创 NoSql数据库

NoSql数据库,非关系型易扩展,高性能,高可用较容易映射复杂数据(key-value)无事务特性要求(ACID特性)

2022-04-15 09:30:13 602

原创 函数式编程

函数式编程FPFP是编程范式之一,除此之外,还有面向过程编程,面向对象编程.面向对象编程的思维方式:把现实世界中的事物抽象成程序世界中的类和对象。通过封装,继承和多态来演示事务事件的联系。函数式编程的思维方式:把现实世界的事物和事物之间联系抽象倒程序世界,对运算过程进行抽象本质:根据输入通过某种计算获的相应的输出。x->f (联系,映射) =>y ,即 y=>f(x)函数式编程中的函数不是指程序中的函数或者方法,而是数据中的映射关系,如y=sin(x),x和y的关系。相同

2022-04-12 13:17:26 908

原创 react源码debugger-各种fiber的completeWork阶段

原生div p标签等的bieginWorkclass DD extends Component { render() { return <div>123</div>; }}上面调式了DD类组件的fiber,接着看类组件返回的子fiber,div标签的fiber是怎样的。对于原生html的fiber,fiber.tag是5export const HostComponent = 5; //原生标签hostComponent的fiber{altern

2022-04-10 23:16:59 274

原创 从零实现XMLhttpRequest

HTTP/IPHTTP/IP协议被称为传输控制协议/互联网协议,又称为网络通讯协议创建服务器const http = require("http");const fs = require("fs");const path = require("path");const { Buffer } = require("buffer");const url = require("url");const server = http.createServer((req, res) => {

2022-04-10 16:22:43 3425 2

原创 Reflect,IOC,DI

ReflectReflect对象与proxy对象一样,也是ES6为了操作对象而提供的新的API。JS的装饰器更多的是存在于对函数或者属性进行一些操作,比如修改他们的值,代理变量,自动绑定this等功能。但是却无法实现通过反射来获取究竟有哪些装饰器添加到这个类/方法上,Reflect Metadata就是做这个事情的。Reflect Metadata可以通过装饰器给类添加一些自定义的信息然后通过反射将这些信息提取出来。import "reflect-metadata";const

2022-04-07 10:37:02 382

空空如也

空空如也

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

TA关注的人

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