自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 如何成为一名合格的程序员?

为何需要记录? 从C/C++转到自学Java,深知学习东西不能和啥都没学过的小白一样,在学习的过程中,更应该多关注技术的本质及其原理,而不是浮于表面简单的增删查改搬砖。以前学习C++系,深知理解技术本质的重要性,否则在达到性能瓶颈或碰到难题之后,寸步难行,根本无从下手去找问题。在我看来自学没有那么...

2018-11-22 11:28:43 1474 0

原创 深入理解C语言

大型源代码里面经常出现一些晦涩的C语言及其规则。 本贴着重记录这些代码以及支撑代码运行的C语言神奇用法。 搞懂这些C语言面试就是无敌开挂模式了 牛人讲解的C语言为啥难。 语言的歧义 C语言的谜题 谁说C语言很简单? C 语言中的指针和内存泄漏 C 语言中的指针和内存泄漏 这篇文章...

2017-09-22 10:21:02 2605 1

原创 TCP/IP协议理论

参考文献: 《TCP-IP详解卷一:协议》 《用TCP-IP进行网际互联第一卷:原理、协议与结构》 《LwIP协议深度剖析与实战演练》 《嵌入式Internet TCP IP基础、实现及应用》 TCP/IP协议族通俗综述 OSI结构仅仅停留在理论阶段,没有以实践作为依据...

2017-08-28 19:35:28 2088 0

原创 深入了解Java虚拟机构造(C)

后续创建

2018-12-10 16:48:30 161 0

转载 Java大牛技术分享记录

1、阿里员工都是这样排查Java问题

2018-11-22 11:05:31 5259 0

原创 2019年秋招提前批面筋

综述 本人非科班生,本科普通二本院校、硕士西安某末流985,本硕专业都是电子与通信工程,基本做的东西离不开单片机、DSP、FPGA、STM32,先前完全没有接触过网络、数据结构算法等。研二上学期想往互联网转,所以自学了一年计算机专业的知识,也面了一些互联网大厂,积累了一些经验。本人仅仅参加了提前批...

2018-10-24 10:58:38 1837 2

原创 英文单词记录

recursion:递归 whereas:然而 partition:分割,划分 partitioning:分割区 shuffle:洗牌,搬移 maintain:维护,保持 as long as:只要,如果 out of place:不合适;不在应在的位置 invariant:无变化的,不变的 i...

2018-10-08 10:05:09 819 0

原创 Java入门

1、JavaSE(标准版,功能较简单)、JavaEE(企业版,功能复制可做更大软件) 2、JDK:它是Java开发运行环境,java程序编译、调试、运行及其库。bin目录下javac编译程序,java即为虚拟机程序。 3、JRE:Java Runtime Environment它是Java运行环境...

2018-09-27 11:15:59 109 0

原创 模板

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数...

2018-09-27 11:15:25 95 0

原创 从零开始实现简单的WebServer之九总结篇

中途处理的问题 内存泄漏的问题

2018-07-13 22:07:08 232 0

原创 从零开始实现简单的WebServer之八封装简单多线程HTTP服务器

介绍 在回显服务器上面修改即可

2018-07-13 22:05:58 323 0

原创 从零开始实现简单的WebServer之七封装简单多线程回显服务器

多线程,架构思想 服务器测试,全部通过valgrid测试,避免内存泄漏。

2018-07-13 22:05:17 179 0

原创 从零开始实现简单的WebServer之六封装事件循环及实现每个线程一个事件循环

介绍 EventLoop EventLoopThread EventLoopThreadPool

2018-07-13 22:03:49 131 0

原创 从零开始实现简单的WebServer之五封装IO及定时器事件类

介绍 FileEvent TimeEvent

2018-07-13 22:02:32 165 0

原创 从零开始实现简单的WebServer之四封装Epoll事件循环

epoll重点分析

2018-07-13 22:00:01 281 0

原创 通过printf的原理理解理解栈帧

栈帧 printf原理 传参类型

2018-07-08 13:49:00 561 0

原创 从零开始实现简单的WebServer之三封装多线程异步日志系统

fileutil logfile logstream logging

2018-07-07 17:18:48 121 0

原创 从零开始实现简单的WebServer过程中接触的C++11库

std::bind和std::function 智能指针shared_ptr、weak_ptr、unique_ptr std::move

2018-07-06 15:34:28 913 0

原创 C++智能指针重点分析

shared_ptr weak_ptr

2018-07-03 22:08:34 151 0

原创 从零开始实现简单的WebServer开始篇

为什么选择造轮子 作为跨专业,没有项目是很蛋疼的一件事情。自己平时也看了很多书,也学习了较多的工具,也看了一些开源框架。但是苦于没有实践,终究明白—纸上得来终觉浅、绝知此事要躬行。虽然在整个过程中大量参考了网上以及陈硕-Muduo库。但是对于从来没有通过C++写过稍微大点项目的我来说,在整个调试...

2018-07-03 16:41:32 1034 0

原创 从零开始实现简单的WebServer之二封装线程和线程

封装thread 封装threadpool

2018-07-03 16:34:00 150 0

原创 从零开始实现简单的WebServer之一封装互斥锁和条件变量

封装mutex 封装condition 通过mutex+condition实现countdownlatch

2018-07-03 16:32:56 151 0

原创 剑指offer笔试题

重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 class Solution { pub...

2018-06-30 10:39:29 413 0

原创 leetcode部分题目合集

1、题目描述 Given a binary tree,find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the ne...

2018-06-25 17:04:29 215 0

原创 Bitmap和BloomFilter

题目 5TB的硬盘上放满了数据,请写一个算法将这些数据进行排重。如果这些数据是一些32bit大小的数据该如何解决?如果是64bit的呢? 1、Bitmap Bitmap又叫做位图,判断数组中的某位索引值下的位是否为1,来表示这个数是否存在。假如53存在,那么就将数组中的第53位置1。这样Bi...

2018-06-20 20:03:23 713 0

转载 结合源码分析Memcached与Redis实现

Memcached 与 Redis 实现的对比。 Redis和Memcached的区别 选redis还是memcache,源码怎么说? 综述 memcache和redis是互联网分层架构中,最常用的kv键值缓存。将常用数据缓存在内存中,加快查询速度,检索数据库服务器的压力非常重要。在选型的...

2018-06-19 22:02:44 457 0

原创 模板模式

介绍 对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法) 的框架(或通用的应用算法)是相同的。Template提供了这种情况的一个实现框架。Template模式是采用继承的方式实现这一点:将逻辑(算法)框架放在抽象基类中,并 定义好细节的接口,子类中继承实现其细节。...

2018-06-14 17:09:13 66 0

原创 Valgrind

介绍 使用

2018-06-14 11:11:47 138 0

原创 原型模式

浅拷贝和深拷贝 拷贝构造函数调用的条件有以下几个 用类的一个对象初始化该类的另一个对象时 如果函数的形参是类的对象,调用函数时,进行形参和实参结合时. 如果函数的返回值是类的对象,函数执行完成返回调用者时. 需要产生一个临时类对象时。 深和浅定义了拷贝构造函数的行为。 当为浅拷贝时候...

2018-06-13 21:59:11 106 0

原创 设计模式分类

创建型模式 工厂模式 单例模式 建造模式 原型模式

2018-06-13 20:41:42 75 0

原创 建造者模式

介绍 例如建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下(传入参数)一步一步构造出不同的产品(但是内部建造顺序都是稳定的)。当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),我们要复杂对象的创建过程和这个对象的表示(展示)分...

2018-06-13 20:34:40 238 0

原创 单例模式

参考 什么是单例模式 应该怎样去创建一个唯一的变量或对象?在基于对象的设计中我们可以通过创建一个全局变量或对象来实现,在面向对象和面向过程结合的设计范式(如C++中) 中,我们也还是可以通过一个全局变量实现这一点。 但是当我们遇到了纯粹的面向对象范式(Java)中,这一点可能就只能是通过S...

2018-06-12 22:14:44 61 0

原创 工厂模式

什么是设计模式 某类软件设计的惯用模式,通过这种模式设计,代码可复用率高,容易看出。 常用的设计模式

2018-06-12 09:13:41 74 0

原创 Redis之事务处理

介绍 实现

2018-06-10 21:17:57 122 0

原创 Redis之数据持久化

介绍 RDB AOF

2018-06-10 09:05:09 171 0

原创 Redis之集群

介绍 集群是Redis最新的功能。实现了在服务器端的集群方案。 实现

2018-06-07 10:10:33 69 0

原创 Redis之Sentinel

介绍 实现

2018-06-07 10:09:02 56 0

原创 Redis之事件模型

介绍 Redis将epoll自己简单的封装了,而并没有使用Libevent这种开源的高性能事件驱动库,而Redis为什么不使用这个呢,因为Redis的规则是轻量,而libevent支持平台多,里面实现了事件的优先级,一个事件可注册多个回调函数,evbuffer和其他对应Redis没用用的功能,所...

2018-06-07 10:06:25 1187 1

原创 Redis之数据库结构体

介绍 Redis支持数据类型有5种,这是指的键值对中的值的类型有5种。那么这个应该用什么存储呢。当然是hash表了。也就是通过使hashtable内部的value类型(指针指向对应的数据结构)是前面讲解的一些数据结构。那么就可以实现5中类型。这就是比memcached想的深远的一步。Redis将...

2018-06-07 10:02:53 913 0

原创 Redis之字典(hashtable)

1、介绍 字典采用hashtable实现,碰撞采用拉链法,也就是通过链表联结key的hash值相同的节点。看过STL内部hash实现,这个就很容易,重新造了个轮子。套路,指针数组+多条链表。 2、实现 以下4个结构体是Redis的Hashtable实现的基础。 typedef stru...

2018-06-07 09:54:10 3037 0

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