自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git工作流--持续更新中

git work flowgit Semantic Commit Stylegit Semantic Commit Stylefeat: (new feature for the user, not a new feature for build script)fix: (bug fix for the user, not a fix to a build script)docs: (ch...

2019-10-09 14:56:21 184

原创 记一次惨痛的调试经历

背景:在处理一个重命名操作时,需要将文件以指定的名称存到指定的目录下,同时将原目录下的相关文件全部删除;问题:能够将源文件重新命名,分片mp4的形式能够将整个目录删除,但以整段mp4删除时,始终无法删除对应的.property文件;解决经历:1. 在xcode下模拟,始终是不会出现任务删除不掉问题;2. 改用android studio真机调试,被aar编译打包过程搞疯,编...

2019-09-13 11:50:12 366 1

原创 软链接与硬链接

最近有使用到链接的概念,总结整理下;需要了解的知识:linux文件系统、节点管理在linux中,mv通常用来移动或重命名文件,改变的是文件的名称和位置,但保持了相同的节点号以及时间戳;在linux文件系统中,节点号才是文件的唯一标志,存储的是文件数据,而文件的名称和位置是文件的信息;硬链接:类似于智能指针shared_ptr,存在相同的节点号,硬链接文件大小与源文件相同,创建一个硬链接,其引用计数...

2018-04-06 15:08:41 222

原创

    在工作中经常遇见各种锁,基本上都是参照前人的模式,依葫芦画瓢,往往在出现问题的时候很难发现,也很难排查;    锁的问题,基本上也就是死锁,以及锁资源没有释放导致持久性测试问题,出现在多线程共同访问资源的时候;锁的基本分类:    互斥锁、自旋锁、读写锁;当锁资源被其他线程占有时,各种锁的表现:互斥锁:调用者线程休眠   => 好处:cpu资源得到释放,可以处理其他事情;      ...

2018-03-19 19:32:15 121

转载 linux下目录结构与常用命令

Linux Filesystem HierarchySource and pre-formatted versions available 1. Linux Filesystem Hierarchy1.1. Foreward1.2. The Root Directory1.3. /bin1.4. /boot1.5. /dev1.6. /etc1.7. /home

2016-05-05 19:49:08 286

原创 STL之仿函数排序(1)

在逐步深入对STL库的研究过程中,接触到很多参数是函数指针形式。例如在for_each,sort等算法中,对内置类型可以直接使用。当我们想要以自己的方式去实现时,又改如何去做呢?   首先,来看看其内部的源码与说明。 1.for_each内部等效于 template// for_each example#include <iostream> // std::cout#include

2016-04-23 13:41:50 2082

原创 C++11新特性之智能指针

这一节将从用法上、内存存储上以及生存周期上,对unique_ptr, shared_ptr和weak_ptr做一个深入剖析。unique_ptr   不共享它的指针。它无法复制到其他 unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法。只能移动 unique_ptr。这意味着,内存资源所有权将转移到另一 unique_ptr,并且原始 unique_

2016-04-18 10:57:20 10604 1

原创 C++11之新特性

1.智能指针 在提出智能指针概念后,先回答下面几个问题。 <1>智能指针和普通指针的差异,为何要引入智能指针? <2>智能指针如何进行高效的实现的,以及三种指针应用场景? <3>智能指针和对象池自动回收技术实现<1>智能指针和普通指针的差异,为何要引入智能指针?   原始指针:通过new建立的*指针   智能指针:通过智能指针关键(unique_ptr ,shared_ptr,weak_

2016-04-17 22:15:17 538

原创 Linux 内存管理之内存零头

操作系统在分配内存时,有时候会产生一些空闲但无法被正常使用的内存区域,这些就是内存碎片,或者称为内存零头。内存零头可以分为内零头和外零头。  内零头是指进程在向操作系统请求内存分配时,系统满足了进程所需要的内存需求后,还额外还多分了一些内存给改进程,也就是说额外多出的这部分内存归该进程所有,其他进程无法访问的。  外零头是指内存中存在着一些空闲的内存区域,这些内存区域虽然不归任何进程所有,但是因为内

2016-04-17 20:35:16 725

原创 Linux常用命令小结

关机: halt shutdown -h now poweroff重启: reboot shutdown -r now init 6init的六种状态: int 0 :停止系统运行 = halt init 1:进入单用户模式 init 2:进入无网络服务的多用户模式 init 3或init 4:进入控制台登录的多用户模式 init 5:进入图形化登录的多用户模式 init

2016-04-17 20:24:15 232

原创 函数调用之详细分析

印象中,函数调用是编译器负责的事情,之前学过汇编了解到,在函数调用时先要保存调用者函数的相关寄存器入栈,调用完再进行出栈等操作。今天偶然看到一篇文章详细分析了函数调用的过程,再次也对概念进行一下梳理。   在window下,栈的生长方向是由高地址向低地址。在嵌入式中,栈的空间申请是放在*.s启动文件中的,我们可以对其进行修改。栈的默认空间相比于堆而言比较小,是一段连续的空间,经常会发生栈溢出问题。

2016-04-05 16:56:10 420

原创 redis相关概念(待补充)

1.事务 事务是数据库运行中的一个逻辑工作单位,处理事务满足所谓的ACID属性。 A(atomic):原子性 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。 C(Consistent):一致性   事务执行的

2016-04-05 14:03:17 264

原创 初识redis

在面试中,很多面试官喜欢问喜欢了解过redis,是否有接触过开源项目,是否提交过bug申请。学习redis的目的是作为自己C/C++的一个学习延伸,能够了解一些更高层的东西。   万事开头难,今天开始学习redis开源项目。一个毕业的师兄说,了解一个开源项目最重要的是知道它能干什么,该怎样用,为什么能比其他类似的东西更高效,然后再去探究它是具体如何实现的细节。 redis简介:   redis

2016-04-04 15:27:17 273

原创 排序算法

在总结排序算法前,先了解几个概念: 1.稳定和非稳定排序 通俗而言,指的是有相同值的几个值,在排序前后其相对性位置保持不变(前后关系),如果保持不变就是稳定的。如果发生了该改变,就是不稳定的。 如冒泡排序5 8 5 2 1 就是稳定的。 如选择排序5 8 5 2 1 =>1 8 5 2 5 就改变了位置关系,则是不稳定的。稳定排序:插入排序/冒泡排序/归并排序/基数排序 不稳定排序:选择排

2016-04-03 14:59:26 309

原创 缓存换页机制

缓存是计算机体系中一个比较重要的概念,如哈希一致性、换页机制就是有关缓存的。在笔试中也经常考察采用FIFO、LRU、LFU等页面淘汰机制和命中率。先了解下面几个概念: 缺页:如果需要访问的页面在缓存中不存在时,就代表缺页了。 命中:如果在缓存中存在需要访问的页面时,就代表命中了,直接从缓存中取出。 缺页次数 + 命中次数 = 访问次数。 命中率:命中次数/总共访问次数提到缓存,有两点是必须要

2016-04-02 14:07:17 1028

原创 文件操作

前言:文件的基本操作可以分为open/read/write/close,万变不离其宗,在不同平台下,这些操作的原理都是相同的,只不过在具体实现时会有参数形式的区分。文件操作也是面试中常考的内容,在C++中用面向对象设计的思维,文件系统是如何实现的,这一次进行一下系统的梳理。 1. 打开文件操作 2. 读文件read 3. 写文件write 4. 关闭文件close

2016-04-02 13:49:33 334

原创 C++ 之 构造函数与析构函数

一、构造函数 1. 构造函数的理解 构造函数用于类的对象初始化,是基于具体对象而言的。我们需要在构造对象时跟据传入的参数进行函数重载,分为默认构造函数(可以显示声明,也可以引式声明)、自定义类型(根据传入的参数类型,参数个数,选择最优匹配的)。基于对象的初始化目的,构造函数时不需要任何返回值的(加入返回值反而是画蛇添足了)。 值得一提的是,构造函数和成员函数(包括静

2016-03-31 11:47:02 368

原创 前言

连载博客1. 扬帆起航,迈向成功第一步 很久以前就一直想写博客,一直拖着没有行动。最近几件事比较触动,觉得写博客是一件很有意义的一件事。 1. 能够及时记录总结当前阶段在做什么,有什么心得,遇到什么问题。很多时候,记忆是会骗人了,需要时而回顾,才会记得深刻。 2. 能够坚持一些东西,给自己一些积极的暗示,让自己有“成就感”。一位前辈说的,一个人能走多远,靠的是对这份职业

2016-03-30 17:57:51 228

空空如也

空空如也

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

TA关注的人

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