自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 不看不知道,一看吓一跳之void*、NULL、nullptr之间的区别

人生就像一杯茶,不会苦一辈子,但总会苦一阵子很多小伙伴在各种开发场景中经常使用到void*, NULL和nullptr, 但是它们之间的区别确经常被忽视, 今天我就来带着大家看看,它们之间到底有什么样的区别在C语言中, 一般会这么实现:#define NULL ((void*)0)NULL是一个标标准准的宏定义,用来表示不指向任何内存,从以上可以看出,NULL在底层是调用了0, 在C语言中,NULL和0是一样的,但是为了在开发中容易识别,就一般使用NULL当作空指针,0用于数值在C++中,..

2021-03-07 22:48:43 487

原创 第一次有人说清了IO设备的层次

相信梦想是价值的源泉,相信眼光决定未来的一切,相信成功的信念比成功本身更重要,相信人生有挫折没有失败,相信生命的质量来自决不妥协的信念IO软件设计的面非常广,往下与硬件有着密切的联系,往上又与用户直接交互,它与进程管理、存储器管理、文件管理等都存在着一定的联系,即它们都需要IO软件来实现IO操作为了使复杂的IO软件具有清晰的结构,良好的可移植性和适应性,在io软件中普遍采用了层次式结构,将系统的输入输出功能组织成一系列的层次,每一层都利用下一层提供的服务。在层次式的IO结构中,只要一层和一层间的..

2021-03-06 11:18:27 729

原创 一盏茶的时间来聊一聊---虚拟化

云计算随着云计算的大力发展,云原生、serverless等云相关概念层出不穷,那么什么是云呢?云其实,云的本质就是开发者自己研发基础架构,应用开发者不需要关注基础设施,就像我们刚发明电的时候,工厂需要自己建电站,而现在,只需要电线和插座就可以上网。云计算可以使我们按分钟甚至是秒级时间内获得计算、存储和操作系统等资源,尤其是serverless概念的提出,可以按照你应用的访问量进行收费,还可以进行毫秒级的弹性收缩,不由得感叹一下,时代的发展真是一日千里。有了云计算,我们可以买走一个64核CP

2021-03-05 17:40:03 209 1

原创 解决算法,从我做起(一) --- start

周末,上午10点,一阵猛烈的敲门声将我从睡梦中吵醒,打开门一看,原来是表弟来了,突然想到昨晚微信和姨妈聊天中提起的最近表弟学习遇到了困难,身为祖国栋梁的我自然自告奋勇,扛起拯救表弟学业的大梁班级前五的表弟 : 表哥表哥,最近数学题目越来越难了,做很久都不会做,感觉自己不是学习的料我想起了自己小学时天天打游戏,从来没有为学习发过愁(因为压根没有好好学习的想法)的自己, 语重心长的对表弟说 : 现在你的水平确实比当初的我弱一些,不过没事,有我在,帮你拿到年纪第一的宝座算法导论购买链接时间复杂度分.

2021-02-28 12:27:32 270

原创 位运算的奇思妙想

真正的装逼都是不经意间的,比如说,当你的代码中出现了位运算位运算在算法当中的使用Part 1检验一个数是否为2的幂次,(当一个数的二进制中只有一个1时,就是2的幂次)假设现在有一个整数为n,想要判断它是否为2的幂次,我们可以 // 判断是2的幂次func isPowerOfTwo(n int){ if n & (n - 1) == 0 { fmt.Printf("%d是二的幂次\n", n) }else { fmt.Printf("%d不是二的幂次\n", n) }}.

2021-02-22 18:50:49 98

原创 Mybatis源码窥探

作为当前主流的ORM框架—Mybatis, 其代码的质量是母庸置疑的,我们通过了解源码层面他的实现,便可以掌握和了解到许多软件开发的思想和代码编写准则环境准备我们可以通过github官网去下载他的源代码生活小妙招因为github的服务器在美国,通过国内dns服务器进行查找github.com的话比较费劲,所以我们对github的访问会比较卡,可以 通过在本地hosts文件写上github域名和IP地址的映射关系,从而不走国内的dns,提高我们的访问速度, 这是一个可以将域名转.

2021-02-20 09:43:35 79

原创 聊一聊分布式一致性算法(上)

随着分布式的概念被提出,越来越多的企业开始采用大量的廉价机器来代替单个的大型超级计算机,与之而来的就是各种分布式的问题,像单点登录、分布式事务、分布式一致性等等,今天就来说一下分布式我们传统的单机事务,可以清楚的知道我们的事务是否执行成功或者失败,但是,当我们的事务跨越多个节点的时候,为了满足我们事务的ACID特性,我们就需要一个协调者的角色来统一调控各个节点的事务执行逻辑基于这个思想,产生了2PC(2 phase commit)和3PC(3 phase commit)两种分布式事务的解决方案2P.

2021-02-19 09:37:40 122

原创 C语言生成可执行文件的过程

今天用gcc编译器为大家演示一下c语言的编译过程首先,我们将贴上我们朴实无华的源代码1. 预编译过程由.c --生成–> .o文件通过 gcc -E main.c -o main.i 执行c语言的预编译过程,生成main.o文件让我们怀着敬畏的心情瞧一瞧生成的main.o文件是啥样子(因为篇幅原因,上面截图只展示原文件的几十分之一的代码)可以发现最下面是我们的源代码部分,也就是main函数,那么,main函数上面的几千行代码都是什么东西呢?其实啊,那是我们的#include .

2021-02-15 21:06:49 4539 5

原创 zookeeper源码探究(一) ------zookeeper的序列化和通信协议

zookeeper的序列化解决方案zookeeper采用了jute框架进行数据的序列化传输,选择jute并不是因为这个框架的序列化解决方式性能很好,相反,像apache Avro,thrift等框架的性能要优于它,选择他是因为新老版本的兼容问题使用jute实现java序列化也很简单,只需要实现Record接口,重写他的serialize和deserialize方法就可以了, jute框架支持非常多的数据类型的转化,有整型,双精度数,长整型,字符串等等一例胜千言 :class TestJute imp

2021-02-13 14:07:19 158 2

原创 聊聊软件那些事(one)

架构师吃掉需求 设计师吃掉架构 程序员消化设计我认为,架构师和普通程序员的区别,也是软件工程科班出生和培训机构转行同学的最大区别点,在于用工程化的思想去解决软件问题的能力。这是一个系列文章,会从架构的各个方面去聊,不仅会分享实际的软件架构过程,比如说如何上云,如何达到软件的安全性、高性能、高可用、弹性伸缩等等,还会和大家分享架构理论,比如说ABSD、领域驱动设计、AT等等,还会分享一些关于软件工程项目管理的方方面面,是不是非常的四高一呢?那么,俗话说,软件的后期保证质量靠测试和运维, 软件的中期保.

2020-12-30 10:10:16 222 1

原创 超详细解释什么是三次握手,四次挥手!看完不会你来打我

最近可能是和网络干上了,就想写一点儿和网络有关的东西。今天给大家讲一讲什么是三次握手和四次挥手。在tcp/ip四层协议中,将网络通信模型划分为四层,分别是应用层,传输层,网络层,网络访问层。今天我们要说的这个,位于传输层中。tcp协议在传输层中可谓是家喻户晓的协议,它是一种面向连接的稳定的传输协议,既然他面向连接,那么,在我们使用和结束时,肯定要进行连接的创建和关闭。而我们的三次握手,就...

2020-03-07 22:00:22 3209

原创 你确定你了解Tomcat吗(一)?

各位看官老爷大家好,我又写完了一篇枯燥且无味的博客,火速前来发布Tomcat身为一个整天和web打交道java码农,Tomcat是我们整天抬头不见低头见的好朋友,好工具, 但是好朋友要做到互相了解,所以,这篇文章帮你了解Tomcat,做他的好朋友,这样,下次它不高兴报错的时候我们也可以对症下药…我们平时用框架开发出的java后端程序,部署到Tomcat中才可以发挥它的作用,所以,Tomca...

2020-03-07 11:57:45 259

原创 什么是RPC, Http和Https

各位看官老爷大家好,趁着一个阳光明媚的夜晚,闲来无事,开始了我的无聊博客.....RPC(Remote Procedure Call) 全名叫做远程过程调用,计算机的一个通信协议,我在第一次接触它的时候就是学到Dubbo的时候,当时我还是比较懵逼的,啥是RPC嘞(虽然现在也很懵逼)。 emm....就拿一个大家都熟悉的下订单例子来解释吧,我们现在的大型项目都是分布式的,每一个模块或者服务都是在...

2020-03-05 17:25:45 1925

空空如也

空空如也

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

TA关注的人

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