自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 2023/11/5号笔记

这是一篇2023年11月5号的日记。

2023-11-05 23:43:17 40

原创 2023/11/4号文章

这是一篇2023年11月4号的文章。

2023-11-04 22:49:55 84

转载 The Graph介绍和使用

The Graph的使命是赋能完全由公共基础架构所驱动的互联网应用。全栈去中心化让应用具备应对商业失败和寻租的能力,同时带来前所未有的互操作性。用户和开发者都清楚知晓他们投入时间和资金打造的软件不会凭空消失。为了实现完全去中心化应用(dApp)的愿景,有一点非常关键,就是我们要进行一个范式转移,从为应用正常运行所需的持续存储、计算和其他服务付费的业务模式,转变成用户直接为去中心化服务提供商网络付费。The Graph网络对Web3的查询层和API层进行了去中心化,消除了dApp开发者目前面临的取

2020-12-20 22:39:34 2143

原创 Akash去中心化云必要性分析

云计算是一种随时随地从可配置计算资源共享池中获取所需的快速供应及释放的资源(例如网络、服务器、存储、应用等),来达到管理资源的工作量和服务商交互的最小化的一种商业模式。在过去的十年云计算突飞猛进,智研咨询发布的《2019-2025年中国云计算行业市场分析预测及投资方向研究报告》数据显示:全球市场稳步增长,国内市场空间广阔。2018年全球公有云市场规模达到1363亿美元,增速23%;未来几年的年复合增长率将保持在20%以上,预计到2022年全球市场规模将超过2700亿美元;到2023年市...

2020-12-12 08:57:02 375 1

原创 美团技术团队前端安全系列

前端安全系列(一):如何防止XSS攻击?https://juejin.im/post/5bad9140e51d450e935c6d64前端安全系列之二:如何防止CSRF攻击?https://juejin.im/post/5bc009996fb9a05d0a055192...

2019-11-04 16:26:52 646

转载 cookie详解

咱们不搞一开始就一大堆理论知识介绍,怕把人讲懵了...... 咱们换一个思维方式——"从现象看本质",先说说我们看到了什么,再从看到的现象中提出问题,最后深入寻找答案。我们看到的 cookie我自己创建了一个网站,网址为http://ppsc.sankuai.com。在这个网页中我设置了几个cookie:JSSESSIONID,PA_VTIME,skmtutc,test。在 chr...

2019-11-04 15:25:18 171

原创 C++ 宏定义 #define 和常量 const 的区别

宏定义 #define 和常量 const 的区别类型和安全检查不同宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误;const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查编译器处理不同宏定义是一个"编译时"概念,在预处理阶段展开,不能对宏定义进行调试,生命周期结束与编译时期;const常量是一个"运行时"概念,在程序运...

2019-10-31 19:41:58 400

转载 Linux IO模式及 select、poll、epoll详解

同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O用户空间与内核空间现在操作系统都是采用虚拟存...

2019-09-30 16:37:13 98

原创 20190918日记

女朋友前端算是培训完了,学习过程比我预期的要顺利,然而找工作的过程比她自己预期的要曲折,原本以为女程序猿比较稀缺所以应该会更容易找到才对,然而并非如此,问了几个同学推荐下,都是只招男生,因为需要996,他们认为女生吃不了这个苦,看着女朋友一次次的碰壁,我心理也很难受,让我会反思甚至愧疚当初让她踏入这个行业,让她遭受了我认为不该让他遭受的痛苦,如果最后真是一直找不到工作,我很难想象对她是一种什么样的......

2019-09-18 14:18:01 211

原创 优秀博客录

https://www.cnblogs.com/clover-toeic/category/579078.htmlhttps://www.cnblogs.com/yinbiao/https://www.zhihu.com/people/chen-lin-68-93-24/postshttps://blog.csdn.net/caoshangpa/article/cat...

2019-09-06 10:05:44 117

原创 程序的内存布局——函数调用栈的那点事

一:https://blog.csdn.net/yang_yulei/article/details/45795591二:https://www.cnblogs.com/clover-toeic/p/3755401.htmlhttps://www.cnblogs.com/clover-toeic/p/3756668.htmlhttps://www.cnblogs.com/clo...

2019-09-06 10:01:22 123

转载 编译原理之可重定位代码

可重定位代码 是什么意思呢?顾名思义,可重定位 就是 可以重新定位的意思。我们都知道,在写代码时,代码里的各种跳转代码/指令,比如C语言里的goto,汇编里的jmp、jz等等,它们都是跳到某一地址,然后在该地址继续往下执行代码 的意思,我们写的代码时用的内存空间是逻辑空间,但是代码在实际运行时,用到的却是货真价实的物理地址空间。既然如此,那么在程序编译时,就需要有一个从逻辑地址空间...

2019-08-14 15:59:37 1325

原创 C++智能指针实现和问题

Share_ptr实现原理智能指针是什么简单来说,智能指针是一个类,它对普通指针进行封装,使智能指针类对象具有普通指针类型一样的操作。具体而言,复制对象时,副本和原对象都指向同一存储区域,如果通过一个副本改变其所指的值,则通过另一对象访问的值也会改变.所不同的是,智能指针能够对内存进行进行自动管理,避免出现悬垂指针等情况。普通指针存在的问题C语言、C++语言没有自动内存回收机制,关...

2019-08-09 13:54:22 183

转载 Dubbo RPC面试题

RPC非常重要,很多人面试的时候都挂在了这个地方!你要是还不懂RPC是什么?他的基本原理是什么?你一定要把下边的内容记起来!好好研究一下!特别是文中给出的一张关于RPC的基本流程图,重点中的重点,Dubbo RPC的基本执行流程就是他,RPC框架的基本原理也是他,别说我没告诉你!看了下边的内容你要掌握的内容如下,当然还有很多:RPC的由来,是怎样一步步演进出来的;RPC的基本架构是什么;...

2019-07-17 20:22:47 388

转载 什么是RPC框架

先说说原理。本地过程调用RPC就是要像调用本地的函数一样去调远程函数。在研究RPC前,我们先看看本地调用是怎么调的。假设我们要调用函数Multiply来计算lvalue * rvalue的结果:1 int Multiply(int l, int r) {2 int y = l * r;3 return y;4 }5 6 int lvalue = 10;7 in...

2019-07-17 20:03:09 153

转载 new 对象加括号和不加括号的区别

在new对象的时候有加上(),有不加(),不知道这个到底是什么区别?比如:CBase *base = new CDerived();CBase *base = new CDeviced;很多人都说,加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数。这是有问题的。对于自定义类类型:如果该类没有定义构造函数(由编译器合成默认构造函数)也没有虚...

2019-07-10 10:50:01 1042

转载 golang中四种方式实现子goroutine与主协程的同步

golang中四种方式实现子goroutine与主协程的同步文章出处:赵从亮---原文地址如何实现子goroutine与主线程的同步 第一种方式:time.sleep(),这种方式很太死板,就不演示了。 第二种方式:使用channel机制,每个goroutine传一个channel进去然后往里写数据,在再主线程中读取这些channel,直到全部读到数据了子goroutine...

2019-06-27 10:50:08 923

原创 微感悟

每个人有每个人的活法,我也没有权利和必要去评价任何人的生活方式,自己过好自己的小日子,走好自己的小路就已经感天谢地了。我自认为自己是一个很坚强的人,但是也总有一块柔软的地方,我不敢触碰,也不愿触碰,希望你也少触碰它...

2019-06-26 09:34:13 212

转载 浅谈 C++ 中的 new/delete 和 new[]/delete[]

参考链接:https://blog.csdn.net/hazir/article/details/21413833

2019-04-19 11:44:34 176

转载 堆和栈的区别详解

堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(sta...

2019-04-19 11:41:53 366

转载 C++模板深度解析

引子在C++发明阶段,C++之父Stroustrup和贝尔实验室的C++小组对原先的宏方法进行了修订,对其进行了简化并将它从预处理范围移入了编译器。这种新的代码替换装置被称为模板,而且它变现了完全不同的代码重用方法:模板对源代码重用,而不是通过继承和组合重用对象代码。当用户使用模板时,参数由编译器来替换,这非常像原来的宏方法,却更清晰,更容易使用。模板使类和函数可在编译时定义所需处理和返回...

2019-04-19 11:37:41 287

转载 C++类模板声明头文件和实现文件不能分离原因

C++中每一个对象所占用的空间大小,是在编译的时候就确定的,在模板类没有真正的被使用之前,编译器是无法知道,模板类中使用模板类型的对象的所占用的空间的大小的。只有模板被真正使用的时候,编译器才知道,模板套用的是什么类型,应该分配多少空间。这也就是模板类为什么只是称之为模板,而不是泛型的缘故。既然是在编译的时候,根据套用的不同类型进行编译,那么,套用不同类型的模板类实际上就是两个不同的类型,也就...

2019-04-19 11:22:42 626

转载 C++模板中Class和Typename区别

模板中使用class和typename的区别还没翻几页,当看到这段代码的时候就楞了一下。印象中上次也是看到这里一下子没弄懂,还特地搜索过的。结果再来一遍的时候还是忘了。果然好记性不如烂笔头,赶紧写篇博客mark一下。这里讲的是作者在声明模板的时候使用typename而不是class。一般情况下,使用typename或者class只是编码风格的问题。但是在遇到从属类型(dependent t...

2019-04-18 18:11:04 750

原创 Goroutine并发模型理解

并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题;Go语言作为一个出道以来就自带 『高并发』光环的富二代编程语言,它的并发(并行)编程肯定是值得开发者去探究的,而Go语言中的并发(并行)编程是经由goroutine实现的,goroutine是golang最重要的特性之一,具有使用成本低、消耗资源低、能效高等特点,官方宣称原生goroutine并发成千上万不成问题...

2019-04-10 14:26:40 360

原创 尾递归理解

function story() {从前有座山,山上有座庙,庙里有个老和尚,一天老和尚对小和尚讲故事:story() // 尾递归,进入下一个函数不再需要上一个函数的环境了,得出结果以后直接返回。}function story() {从前有座山,山上有座庙,庙里有个老和尚,一天老和尚对小和尚讲故事:story(),小和尚听了,找了块豆腐撞死了 // 非尾递归,下一个函数结束以后此函数还有...

2019-04-09 10:08:47 102

转载 闭包的理解

闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。  v...

2019-03-31 19:54:43 100

转载 Golang中的"继承"

go语言是没有继承的,但结构体支持匿名字段,可以利用这个来实现“继承”。类Human。有2个字段:name,sex。有2个方法:walk,eat。类SuperMan。有3个字段:Human,name,level。有2个方法:eat,fly。这是标准说法,但你可以这么理解:SuperMan继承了Human,当然同样继承了所有字段和所有方法。同时又加入了自己的两个字段,其中有一个字段和父类...

2019-03-31 10:52:18 3593

原创 Golang Interface深刻理解(类比C++多态)

什么是interface在面向对象编程中,可以这么说:“接口定义了对象的行为”,那么具体的实现行为就取决于对象了。在Go中,接口是一组方法签名。当一个类型为接口中的所有方法提供定义时,它被称为实现该接口。它与oop非常相似。接口指定类型应具有的方法,类型决定如何实现这些方法。创建和实现interface在Golang中只要实现了接口定义的方法,就是(JAVA im...

2019-03-30 21:13:24 399

原创 Golang中引用传递理解

先抛出问题:函数传参中值传递、指针传递与引用传递到底有什么不一样? 为什么说slice、map、channel是引用类型? Go中slice在传入函数时到底是不是引用传递?如果不是,在函数内为什么能修改其值?In a function call, the function value and arguments are evaluated in the usual order. ...

2019-03-27 19:12:43 3545 6

原创 变量、地址、指针、引用理解

先抛出问题:变量的变量名、变量值、变量地址在内存中是怎么样的? 指针的定义是什么?引用的定义是什么?二者有什么关系? 函数传参中值传递、指针传递与引用传递到底有什么不一样?变量名程序员给地址取的外号上学的时候,老师讲变量是存在内存中的,内存就像一排排抽屉组成的,每个抽屉上面有个编号,我们定义一个变量,就是把想放的东西放到这个对应编号的抽屉里。比如: int a = 10,用图来表示下...

2019-03-27 19:07:53 727

原创 LeetCode 无重复字符的最长子串

Go语言版:func lengthOfLongestSubstring(s string) int { lastCurrIndex := make(map[byte]int) start := 0 maxLength := 0 for i, ch := range []byte(s) { if LastI, ok := lastCurr...

2019-03-26 17:41:19 108

原创 谈黑盒、白盒、单元测试、集成测试、系统测试

公司的项目快做完了,期间涉及到写了AT和UT,在网上搜了很多资料,在这里汇总一下,也算一个总结了黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测...

2019-03-25 19:34:12 2203

原创 一篇文章理解KMP算法

地址:https://blog.csdn.net/v_july_v/article/details/7041827自己实现代码和问题总结:

2019-03-22 14:22:08 109

转载 数据包从源主机到达目标主机过程详解

为了便于理解,先从同一广播域内两台主机通信开始叙述吧。只要能理解这些,那也就差不多可以理解跨路由传输过程了(两者不同之处在于源和目标MAC地址的转换)。 情景一:同一广播域内,两台主机通信过程。 我们知道两主机要通信传送数据时,就要把应用数据封装成IP包(因为我们的网络大多都是TCP/IP的以太网了),然后再交给下一层数据链路层继续封装成帧;之后根据MAC地址才能把数据...

2019-03-08 14:32:19 2407

原创 拜占庭PBFT共识算法原理及实现

Wait...

2019-02-27 11:15:41 2408

转载 即时通讯安全篇(七):如果这样来理解HTTPS,一篇就够了

4、一个引子我们先不了聊HTTP/HTTPS,我们先从一个IM聊天软件说起。假设我们想要实现A能发一个hello消息给B:  因为只是为了方便讲解原理,我们要实现这个IM聊天的通信功能,本文只考虑安全性问题。那么我们的这个IM聊天功能,安全性上必须要达到:A发给B的hello消息包,即使被中间人拦截到了,也无法得知消息的内容。好,带着这个问题,我来继续往下理解基本的通信安全知识。好,问...

2019-02-27 11:04:27 485

转载 P2P技术详解(三):P2P技术之STUN、TURN、ICE详解

1、内容概述在现实Internet网络环境中,大多数计算机主机都位于防火墙或NAT之后,只有少部分主机能够直接接入Internet。很多时候,我们希望网络中的两台主机能够直接进行通信,即所谓的P2P通信,而不需要其他公共服务器的中转。由于主机可能位于防火墙或NAT之后,在进行P2P通信之前,我们需要进行检测以确认它们之间能否进行P2P通信以及如何通信。这种技术通常称为NAT穿透(NAT Tra...

2019-02-27 11:02:09 332

转载 P2P技术详解(一):NAT详解——详细原理、P2P简介

1. IPv4协议和NAT的由来今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣。他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需。企业利用互联网发布信息,传递资料和订单,提供技术支持,完成日常办公。然而,Internet在给亿万用户带来便利的同时,自身却面临一个致命的问题:构建这个无所不能的Internet的基础IPv4协议已经不能再提供新的...

2019-02-27 11:01:12 416

转载 P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解

1、内容概述P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式(如下图“P2P结构模型”所示)有着明显的区别,在即时通讯方案中应用广泛(比如IM应用中的实时音视频通信、实时文件传输甚至文字聊天等)。P2P可以是一种通信模式、一种逻辑网络模型、一种技术、甚至一种理念。在P2P网络中(如右图所示),所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信...

2019-02-27 11:00:17 207

转载 不同总线为什么速率差别这么大

关于链路层不同总线速度差很多主要是频率快了啊 480Mbps和10Gbps 不过链路层效率提高也有影响.链路层主要是 编码 封包 CRC 流量控制 握手应答 这些比如低速都是有8bit/10bit编码 而现在都是128bit/130bit编码 一个packet是512byte还是1024byte低速协议一般一个data packet发完要收到ack才发下一个data packet, 而高速...

2019-02-25 10:36:58 1068

双机模拟iic通信

双机模拟IIC通信的过程、用于两台计算机或者单片机iic通信过程

2016-03-01

空空如也

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

TA关注的人

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