![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java后端
文章平均质量分 80
柴鲨爱吃水果
如果忽略周围客观条件和资源,只强调努力勤奋,那就是愚蠢;但如果你因此认为努力勤奋没有用,那就是懒惰➕愚蠢
展开
-
不看不知道,一看吓一跳之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 · 526 阅读 · 0 评论 -
第一次有人说清了IO设备的层次
相信梦想是价值的源泉,相信眼光决定未来的一切,相信成功的信念比成功本身更重要,相信人生有挫折没有失败,相信生命的质量来自决不妥协的信念IO软件设计的面非常广,往下与硬件有着密切的联系,往上又与用户直接交互,它与进程管理、存储器管理、文件管理等都存在着一定的联系,即它们都需要IO软件来实现IO操作为了使复杂的IO软件具有清晰的结构,良好的可移植性和适应性,在io软件中普遍采用了层次式结构,将系统的输入输出功能组织成一系列的层次,每一层都利用下一层提供的服务。在层次式的IO结构中,只要一层和一层间的..原创 2021-03-06 11:18:27 · 770 阅读 · 0 评论 -
一盏茶的时间来聊一聊---虚拟化
云计算随着云计算的大力发展,云原生、serverless等云相关概念层出不穷,那么什么是云呢?云其实,云的本质就是开发者自己研发基础架构,应用开发者不需要关注基础设施,就像我们刚发明电的时候,工厂需要自己建电站,而现在,只需要电线和插座就可以上网。云计算可以使我们按分钟甚至是秒级时间内获得计算、存储和操作系统等资源,尤其是serverless概念的提出,可以按照你应用的访问量进行收费,还可以进行毫秒级的弹性收缩,不由得感叹一下,时代的发展真是一日千里。有了云计算,我们可以买走一个64核CP原创 2021-03-05 17:40:03 · 220 阅读 · 1 评论 -
位运算的奇思妙想
真正的装逼都是不经意间的,比如说,当你的代码中出现了位运算位运算在算法当中的使用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 · 101 阅读 · 0 评论 -
Mybatis源码窥探
作为当前主流的ORM框架—Mybatis, 其代码的质量是母庸置疑的,我们通过了解源码层面他的实现,便可以掌握和了解到许多软件开发的思想和代码编写准则环境准备我们可以通过github官网去下载他的源代码生活小妙招因为github的服务器在美国,通过国内dns服务器进行查找github.com的话比较费劲,所以我们对github的访问会比较卡,可以 通过在本地hosts文件写上github域名和IP地址的映射关系,从而不走国内的dns,提高我们的访问速度, 这是一个可以将域名转.原创 2021-02-20 09:43:35 · 81 阅读 · 0 评论 -
聊一聊分布式一致性算法(上)
随着分布式的概念被提出,越来越多的企业开始采用大量的廉价机器来代替单个的大型超级计算机,与之而来的就是各种分布式的问题,像单点登录、分布式事务、分布式一致性等等,今天就来说一下分布式我们传统的单机事务,可以清楚的知道我们的事务是否执行成功或者失败,但是,当我们的事务跨越多个节点的时候,为了满足我们事务的ACID特性,我们就需要一个协调者的角色来统一调控各个节点的事务执行逻辑基于这个思想,产生了2PC(2 phase commit)和3PC(3 phase commit)两种分布式事务的解决方案2P.原创 2021-02-19 09:37:40 · 127 阅读 · 0 评论 -
zookeeper源码探究(一) ------zookeeper的序列化和通信协议
zookeeper的序列化解决方案zookeeper采用了jute框架进行数据的序列化传输,选择jute并不是因为这个框架的序列化解决方式性能很好,相反,像apache Avro,thrift等框架的性能要优于它,选择他是因为新老版本的兼容问题使用jute实现java序列化也很简单,只需要实现Record接口,重写他的serialize和deserialize方法就可以了, jute框架支持非常多的数据类型的转化,有整型,双精度数,长整型,字符串等等一例胜千言 :class TestJute imp原创 2021-02-13 14:07:19 · 168 阅读 · 2 评论 -
聊聊软件那些事(one)
架构师吃掉需求 设计师吃掉架构 程序员消化设计我认为,架构师和普通程序员的区别,也是软件工程科班出生和培训机构转行同学的最大区别点,在于用工程化的思想去解决软件问题的能力。这是一个系列文章,会从架构的各个方面去聊,不仅会分享实际的软件架构过程,比如说如何上云,如何达到软件的安全性、高性能、高可用、弹性伸缩等等,还会和大家分享架构理论,比如说ABSD、领域驱动设计、AT等等,还会分享一些关于软件工程项目管理的方方面面,是不是非常的四高一呢?那么,俗话说,软件的后期保证质量靠测试和运维, 软件的中期保.原创 2020-12-30 10:10:16 · 224 阅读 · 1 评论 -
你确定你了解Tomcat吗(一)?
各位看官老爷大家好,我又写完了一篇枯燥且无味的博客,火速前来发布Tomcat身为一个整天和web打交道java码农,Tomcat是我们整天抬头不见低头见的好朋友,好工具, 但是好朋友要做到互相了解,所以,这篇文章帮你了解Tomcat,做他的好朋友,这样,下次它不高兴报错的时候我们也可以对症下药…我们平时用框架开发出的java后端程序,部署到Tomcat中才可以发挥它的作用,所以,Tomca...原创 2020-03-07 11:57:45 · 262 阅读 · 0 评论