自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(222)
  • 资源 (6)
  • 收藏
  • 关注

原创 React进阶

当组件A被替换为组件B时,B组件可以继续使用A组件的状态值!

2024-06-21 19:04:06 340

原创 React快速入门之交互性

handle+事件名onClick。

2023-12-27 20:55:40 1279

原创 React快速入门之渲染

浏览器会将HTML或XML文档浏览器会监听DOM🌲的变化,并在DOM树被修改后重新绘制(渲染)对应的部分。

2023-12-27 16:33:17 423

原创 React快速入门之组件

React组件怎么用!!!

2023-12-25 19:43:40 756

原创 React入门介绍

React是一个由Facebook开发并维护的,用于构建用户界面。

2023-12-25 18:12:19 270

转载 学习笔记之Go泛型

Go语言学习笔记——Golang 1.18新特性泛型Go 1.18 新增三大功能之一“泛型”怎么使用?

2023-10-12 15:12:39 87

原创 English-英语语法☞动词

叙述事实。

2023-07-09 23:26:01 201

原创 English-英语语法体系

什么怎么样。

2023-07-07 22:12:28 238

转载 English-词根词缀

词根词缀

2023-07-04 01:12:55 143

原创 English-英语音标

音标体系国际音标:不是针对英语的DJ音标(使用最多):有国际衍生而来KK音标(台湾使用)音标分类通过声带振动浊音:声带振动发出的音清音:声带未振动发出的音通过气流是否在空腔在收到阻碍元音:未受到阻碍辅音:受到阻碍DJ音标

2023-07-04 01:10:44 234

原创 二级MySQL

数据定义语言(DDL)

2023-03-25 14:59:28 432 1

转载 Go手动安装第三方依赖

Go手动安装第三方依赖

2023-03-09 16:33:27 2058 1

原创 Go内存

内存泄漏内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏分析工具:net/http/pprofpprof是Go的性能分析工具。在程序运行过程中,提供程序运行时的可视化信息:CPU、堆内存、goroutine栈运行情况等。一、字符串截取func main() { var str0 = "12345678901234567890" str1 := str0[:10]}只要

2022-02-28 12:58:43 1375

原创 GC垃圾回收机制

经典GC算法引用计数每个对象保存自己被引用的数量。当引用数量为 0 时,将其回收。(可以立刻回收)缺点存在循环引用无法释放问题: 多个对象互相引用延伸循环引用解决方法:强弱引用「若 A 强引用了 B,那 B 引用 A 时就需使用弱引用,当判断是否为无用对象时仅考虑强引用计数是否为 0,不关心弱引用计数的数量」根集合:栈上的引用、全局变量常量、程序的元数据等等标记-清扫(为解决上面的循环引用问题)内存到达某个阈值或者固定时间长度会执行垃圾回收程序。STW(不然mark和用户程序并发

2022-02-27 22:56:36 310

原创 面试新杂记

1、 短地址开发?解决url太长问题。思路:hash将长URL转换为一定长度的URL解决hash冲突:根域名/hash网址/时间戳(时间戳:可以是a-z A-Z 0-9构成62进制的字符串)使用Rediskey-value存储短地址与长地址之间的映射使用重定向跳转到长地址短地址是永久的:301永久重定向可以减轻服务器压力短地址是临时的:302临时重定向,Redis中设置短地址有效时间2、企业级单点登录?第一次发送访问请求验证没有登录302重定向到用户中心进行登录登录成功后,产

2022-02-27 13:04:56 420

原创 回溯算法(排序剪枝 减少复杂度)

回溯算法实际是一种暴力穷举法穷举过程类似于遍历一颗多叉树适合算法:往往是列出所有可能(而动态规划往往是求最优解)框架(注:切片result虽然在函数间传递 但它底层被共用了 所以要copy )枚举三步走做选择(符合条件则加入最终值)下一层决策树backtrace()删除选择/ 全局变量作为最终结果var res [][]int// 回溯函数(递归函数)func backtrace(nums []int,result []int) { / 判断当前是否符合目标 / 如果符

2022-01-23 23:47:38 442

原创 算法总结Golang版

数组遍历用不到下标就用for(int i:array),别太土啊大哥!数组copy只记这个就行了System.arraycopy(stones,0,stones,0,length);以二维数组第二个元素从大到小排序:Arrays.sort(boxTypes, (x, y) -> (y[1] - x[1]));

2022-01-10 17:40:11 195

原创 Git之merge、rebase、revert、reset的使用

Gitmerge:等同于一次commit(E)git checkout feature //切换当前分支为featuregit merge master冲突判断规则:以两个分支最近的共同祖先commit(B)为起点,两个分支对同一个文件修改则会发生冲突。注意选用:Squash commits when merge request is accepted 压缩commit后合并,不然C、D也会被commit到master分支中。rebase:变基:改变当前分支的起点git checout

2021-12-31 17:19:32 2697

原创 Gin框架快速开始

Gin框架特点Gin是一个golang的微框架适合追求性能的小型服务快速:基于httprouter ,基于Radix树的路由,小内存占用,没有反射支持中间件:c.Abort()、c.Next()Gin可以使用中间件 catch 发生在 HTTP 请求中的 panic 并 recover 它很好的解析json...

2021-12-28 20:02:46 514

原创 代理服务器、虚拟专用网络、网关

代理服务器

2021-12-26 17:07:37 985 1

原创 Go网络编程☞RPC

RPC的意思是远程过程调用(Remote Procedure Call),人话:RPC允许跨机器、跨语言调用计算机程序方法。

2021-12-22 15:28:41 141

原创 Kafka工作流程

生产过程保证分区有序,不能保证Topic有序offset就想当与该条消息在该队列中的唯一ID,而每个消费者会记录自己消费到的offset!一个问题:同一个消息怎么能让N个消费者消费?每个消息记录自己被消费的次数,当被消费N次后就删除该消息,开始消费下一个消息。每个消费者会定时拿着自己的offset去消费,如果当前消息ID为自己的offset,那么就返回空消息。Kafka是怎样存消息的呢?【文件????】消息丢失问题ACK消息确认机制数据一致性问题消费方式消费者主动拉去【没

2021-12-12 17:15:34 1396

原创 操作系统IO过程与零拷贝

南桥中的DMA控制器是个什么东西?我们曾经在硬件基础知识中讲过:CPU直接从磁盘/网卡中读/写取数据到内核(操作系统)缓冲区【磁盘高速缓存(PageCache)】会降低CPU效率,而这个工作CPU会交给南桥中的DMA控制器完成的。当我们要将磁盘中的文件发送到互联网时,操作系统是怎么做的?我的程序很简单:两个系统调用:syscall.Read(fd int, p []byte)syscall.Write(fd int, p []byte)但这两个系统调用背后发生的事情却不简单:– 两个

2021-12-12 17:10:11 551

原创 Kafka架构概述

消息队列限流削峰异步解藕数据收集消息队列的模式一、点对点模式二、发布/订阅模式发布订阅模式其实分为两种方式:发布:即推送,消息队列主动将消息推送给消费者(缺点:消费者处理不来,导致推送失败)订阅:即拉去,消费者主动去消息队列中拉去数据(缺点:需要消费者不断轮询消息队列)Kafkakafka是基于发布订阅者模式的消息队列。【订阅者模式,消费者主动拉去!】基本架构Producer:消息生产者Broker:节点,就是一台台机器Topic:消息分类,同一种消息发送到同一个T

2021-12-11 22:52:03 896

原创 GORM进阶

关联【Belongs To / Has One / Has Many / Many To Many】创建user时,不仅会在user表中插入数据,而且会在car表中插入对应的数据!条件:User表必须有Car的外键【所以不常用(不建议使用物理外建,而是逻辑外键)】type User struct { ID int64 `gorm:"column:id"` Account string `gorm:"column:account"` Pwd string `gorm:"colu

2021-11-17 15:50:48 701

原创 知识回顾顾

mysql只有char(n),varchar(n):n指最大的字节数而int、bigint、tinyint等存储大小都是固定的,后面的括号只是最大显示宽度。时间为什么不用 timestamp ? :timestamp只能用到2038年,所以时间我们常用 datetime,或者bigint代替【bigint存储从seconds elapsed since January 1, 1970 UTC】使用自增整数作为主键,有防止页分裂等特点(所以ID是主键,给account建立唯一索引!)CREATE

2021-11-17 13:56:11 736

原创 GORM快速开始

ORMORM:对象关系映射(Object Relational Mapping),将数据库中的表映射成程序中的对象!(它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 )...

2021-11-12 19:59:52 776

原创 RBAC权限控制开发

问题根据用户的权限,前端页面应展示不同的内容,如菜单资源、按钮资源等实现将页面资源存储到数据库中,根据用户查询到对应的资源显示到前端页面。需要将数据库表分为两类:1、业务表:用户基本信息等2、页面资源表:菜单信息表等RBAC人话:数据库表权限控制设置思想定义:基于角色的访问权限控制(Role-Based Access Control)。权限与角色相关联,用户通过成为适当的角色而得到这些角色的控制权限,极大的简化了项目权限管理。概念理解用户:现实中访问系统的用户用户类型:用户在现实中的

2021-10-21 20:13:25 133

原创 注册登录策略

token登录策略【token+redis】用户登录产生token存储到redis:key:token value:用户信息返回token给客户端客户端存储到Local Storage 或Session Storage里每次请求将token携带到header中(Authorization:token)从header中获取token,从redis中查询用户信息,并验证是否存在或者是否过期(中间件middleware做)...

2021-10-20 15:26:53 245

原创 实习技能GET

一、连接内网、开通账号二、Mac开发环境使用英文名gort认值:IOS和Linux系统几乎相同开发环境全部在用户家目录下配置!(/Users/gort/)macbook中的命令解释外壳shells:cat /etc/shells/bin/bash/bin/csh/bin/ksh/bin/sh/bin/tcsh/bin/zshmac中有多种shell,我们在Linux系统中常见的是bash,但是在mac中我们默认使用zsh。zsh更为强大,并且包含bash。Linux有

2021-10-13 20:30:40 282

转载 Go线程模型

线程模型由操作系统调度,在CPU运行的是内核级线程(KSE,Kernel Scheduling Entity)注意点:用户级线程切换在用户态用户程序直接进行内核级线程由操作系统进行切换一、用户级线程模型(python)用户线程与内核线程KSE是多对一(N : 1)的映射模型特性:线程的创建、销毁以及多线程之间的协调等操作等都由线程库来负责而无须借助系统调用来实现一个进程中所有创建的线程都只和同一个KSE在运行时动态绑定优点:由于线程调度是在用户层面完成的,也就是相较于内核调度

2021-09-20 13:06:07 428

原创 Go面向对象编程思想

对象结构体就是对象显示声明对象的方法三大特性小写就是封装(小写同一包;大写任意包)继承就是结构体嵌套结构体的继承不具有多态功能,只有接口有多态功能:只是接口名和结构体指针之间是多态情况!也就是:&Chinese{} 可以直接转换为 Human !!!设计模式五大原则举例一个方法的动作应该是单一的!不同对象(结构体)共有的同类方法应该提取为接口进行实现!...

2021-09-14 16:34:08 132

原创 Go网络编程☞WebSocket

WebSocket?WebSocket是基于TCP的应用层协议,用于在C/S架构的应用中实现双向通信。注意:WebSocket协议在建立连接时需要使用HTTP协议【WebSocket协议是基于HTTP协议实现的】WebSocket与Http的区别?1、通信方式不同WebSocket是双向通信模式;HTTP协议的“请求-响应”模式交互。WebSocket客户端与服务器之间只有在握手阶段是使用HTTP协议的“请求-响应”模式交互,而一旦连接建立之后的通信则使用双向模式交互,不论是客户端还是服务端都

2021-09-13 14:58:41 167

原创 Go网络编程☞HTTP

HTTP?HTTP是我们很熟悉的一种应用层协议HTTP开发服务处理器:Handler就是接受和响应http请求的:(要想能够接受处理http请求就得实现这个接口方法!)type Handler interface { ServeHTTP(ResponseWriter, *Request)}路由【项目开发建议:第三方httprouter路由代替默认路由】有个Handler是专门做路由器的:(接受所有请求,并根据请求URL将请求转发给具体的Handler)路由器可以自定义,但基本都填nil

2021-09-12 18:42:32 148

原创 Go面试杂记

1、有缓存和无缓冲channel区别?无缓冲:当向ch1中存值后需要其他协程取值,否则一直阻塞。【协程与协程之间直接传值】无缓冲及缓冲为0:ch := make(chan int)ch := make(chan int, 0)有缓冲:只有当通道满时,才会阻塞。2、切片的扩容机制?当容量小于1024,二倍扩容;大于1024是以1.25倍扩容;3、new和make区别?new和make都是做内存分配的!new(T)返回的是一个T类型的指针;make(T, args)仅用于创建 Sl

2021-09-10 17:34:05 182

原创 Http深入理解

tcp之前我们已经深入掌握了tcp的工作原理:tcp握手、tcp长连接(保活计时器)、tcp分手、以及其用来传输信息的报文!socket套接字就是四元组:源IP:源端口号+目IP:目端口号我们知道,tcp是用套接字建立的一个个独立的连接!每个tcp连接的数据都由对应套接字的缓冲区接受!HTTP与TCPhttp是应用层协议,tcp是传输层协议!http底层是用tcp实现可靠的!http的长短连接实质就是tcp的长短连接HTTP1.0 与 HTTP1.1区别1、长连接http1.0是

2021-09-05 13:09:13 166

原创 分布式事务

分布式事务的解决方案强一致性:一、两阶段提交(2PC)引进一个事务协调者准备阶段:每个节点执行自己的任务,并返回执行结果!提交阶段:如果全部成功,则全部执行事务提交;否则全部执行事务回滚!【如果失败,则不断尝试提交或回滚!】存在的问题?同步阻塞:等所有事务执行结果后才能提交或回滚单点问题:协调者如果中途故障,则参与者可能会一直阻塞数据不一致:协调者如果中途故障二、三阶段提交(3PC)和2PC类似,只是准备阶段只是询问参与者是否可以执行事务,然后预提交阶段和提交阶段分别是执

2021-09-04 10:48:10 73

原创 MQ消息队列

作用RecoketMQ主题实际就是消息类型!生产者可以生产多种类型的消息,不同类型的消息放入对应的主题,一个主题可由一个或多个消费者消费!(消费者只能消费一个主题)主题中有多个队列,会将消息细分:Broker就是一个个节点!NameServer就是整个消息队列的路由器!注意:NameServer也是集群部署的!Broker启动时会将自己的信息轮询注册到每个NameServer中!客户端对Name Server的选择?先随机,失败则轮询!工作流程生产者节点获取一个Name

2021-09-03 21:56:03 302

原创 Go进阶原理杂记

切片原理Pointer 是指向一个数组的指针,len 代表当前切片的长度,cap 是当前切片的容量。(cap 总是大于等于 len 的)map原理buckets存储散列表指针!懒迁移:扩容时map并不会立即把新数据做迁移,而是当访问原来旧bucket的数据的时候,才把旧数据做迁移channel原理环形队列+互斥锁回想:上面三种是特殊数据类型,常使用make()函数创建!syync.Map互斥锁 + 原子类// 封装的线程安全的maptype Map st..

2021-08-27 15:29:52 213

原创 Go网络编程☞简介

目标:开发一个能够支持http请求、app请求!具有tcp聊天、udp播放视频功能的统一后端!http开发过程知识点服务处理器:Handler就是接受和响应http请求的:(要想能够接受处理http请求就得实现这个接口方法!)type Handler interface { ServeHTTP(ResponseWriter, *Request)}有个Handler是专门做路由器的:(接受所有请求,并根据请求URL将请求转发给具体的Handler)路由器可以自定义,但基本都填nil,就是默

2021-08-26 15:33:18 166

计算机网络无线层ppt

计算机网络无线层ppt

2021-01-04

计算机网络应用层ppt

计算机网络应用层ppt

2021-01-04

计算机网络运输层ppt

计算机网络运输层ppt

2021-01-04

计算机网络网络层ppt

计算机网络网络层ppt

2021-01-04

计算机网络数据链路层ppt

计算机网络数据链路层ppt

2021-01-04

计算机网络基础物理层ppt

大学生计算机网络课程

2021-01-04

空空如也

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

TA关注的人

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