10 2020 档案
摘要:现在结合我参与的项目以及阅读的一些项目源码来看。如果项目中使用了像Spring这样的依赖注入框架,那可以不用接口! 先来说说为什么使用了依赖注入框架以后,可以不使用接口! 我整理了支持Service层和Dao层需要加上接口的理由,总结下来就这么三个: 可以在尚未实现具体Service逻辑的情况下编写
阅读全文
摘要:专注于java。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式及面试资料、开源项目,助力开发者成长! 最近小林在求职面试中被询问了这么一个有趣的面试题: 假设当我们需要在一千万个整数(整数的范围在1-1亿之间)里面快速查找某个整数是否存在于其中的话,如何快速查找进行判
阅读全文
摘要:最近,在开发一个分库分表中间件,由于功能需求,需要分析MySQL协议,发现网上对于MySQL协议分析的文章大部分都过时了,原因是分析的MySQL版本太低了。怎么办呢?于是乎,我便硬着头皮开始啃MySQL源码,经过两个多月的整理,终于总结出这篇MySQL协议。 注:部分来自于互联网,感谢数据库大牛前辈
阅读全文
摘要:进程 我们都知道计算机的核心是CPU,它承担了所有的计算任务;而操作系统是计算机的管理者,它负责任务的调度、资源的分配和管理,统领整个计算机硬件;应用程序则是具有某种功能的程序,程序是运行于操作系统之上的。 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和
阅读全文
摘要:前言 IntelliJ IDEA 有很多人性化的设置我们必须单独拿出来讲解,也因为这些人性化的设置让我们这些 IntelliJ IDEA 死忠粉更加死心塌地使用它和分享它。 推荐设置 IntelliJ IDEA 的代码提示和补充功能有一个特性:区分大小写。如上图标注 1 所示,默认就是 First
阅读全文
摘要:前言 掌握Git命令是每位程序员必备的基础,之前一直使用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇博文,复习一下~ 文章目录 Git是什么? Git的相关理论基础 日常开发中,Git的基本常用命令 Git进阶之分支处理 Git进
阅读全文
摘要:如果使用Navicat的话,避免不了需要到处寻找破解版,或者license(笔者很肯定的说,没有几个人会购买正版Navicat的license)。个人使用暂且不提,如果是公司内使用,还是有法律风险的。 所以,我们何不寻找一个完全开源免费、不受任何限制的MySQL客户端来使用呢?正好MySQL官方就有
阅读全文
摘要:HTTP协议 HTTP协议大家都很熟悉了,开始本文之前,首先简单回顾一下HTTP协议。 HTTP协议是建立在TCP协议上的应用层协议,协议的本质是请求 应答: 即对于HTTP协议来说,服务端给一次响应后整个请求就结束了,这是HTTP请求最大的特点,也是由于这个特点,HTTP请求无法做到的是服务端向客
阅读全文
摘要:前言 今天给大家介绍的是FastDFS,一个开源的分布式文件系统,也是入职之后接触到的一个技术,由于公司项目业务需求,服务器里存了上亿量级的文件,所以使用了这么一项技术来存储这些文件,我也就随之开始了解这项技术,并且在这里和大家一起从0到1地开始了解它。 FastDFS介绍 FastDFS是一个以C
阅读全文
摘要:前言 大概2个月前,我说过要利用业余时间写一个简单的 RPC 框架,今天总算将其开源出来,希望对小伙伴们有帮助。 虽说RPC 的原理实际不难,但是,自己在实现的过程中自己也遇到了很多问题。Guide-rpc-framework目前只实现了 RPC 框架最基本的功能,一些可优化点都在下面提到了,有兴趣
阅读全文