archive

文章归档

浅谈C++的智能指针

智能指针作为C++11里的新特征,有可能在面试里被问到。本文主要介绍C++里的三个智能指针:shared_ptr、unique_ptr、weak_ptr。其实还有一种auto_ptr指针,但在C++11里已经被弃用了,故此我们不做讨论了。

C++中的文件和流

最近在牛客网刷题,和leetcode不一样,牛客网需要要自己控制从键盘输入变量。另外在实习的时候,碰巧页遇到几个C++读写文件的问题,之前都是直接网上搜索code,这几天抽空研究了这一块,发现无论是从键盘输入字符串还是从读取文件,都可以采用“流”的思想去理解。

进程和线程

操作系统实在是硬伤,每次面试几乎都被问到进程和线程的区别,那就总结一下吧。 进程和线程的区别根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位。 一个进程中可以有多个线程,他们共享进程的资源。 在开销方面:每个进程都有独立的代码和数据空间(程序上下文),
#OS

操作系统:内存管理之分页和分段

分页和分段是在面试过程中常被问到的两种内存管理技术。 计算机结构比较复杂,那么说到“存储”,我们一般就想到内存和外存,比如我们买手机买电脑,都要看看这些终端的内存够不够打游戏,外存够不够装照片这些。内存外存只是比较通俗的叫法,在实际的计算机存储体系当中,我们划分了四块区域:寄存器

浅谈MySQL存储引擎

数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建 查询 更新和删除数据 不同的存储引擎提供不同的存储机制 索引技巧 锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能 现在许多不同的数据库管理系统都支持多种不同的数据引擎 MySql的核心

排序算法小结

排序算法,面试中最经常被问到的问题,我们需要熟悉并了解各种算法的时间和空间复杂度、时间复杂度平均、最坏、最好的情况和是否为稳定排序。

Linux常用命令

在实际工作中,许多服务器是Linux操作系统,作为程序员无法避免和Linux打交道,所以在应届生面试的时候,Linux常用指令也是面试官经常考察的一个点。 除了我们常用的cd、ls,我们应该掌握一些常用的指令 面试常见的Linux指令

C++多态虚函数表详解(多重继承、多继承情况)

本文转载自C++多态虚函数表详解(多重继承、多继承情况) 在前面的文章中我们已经简单的了解了C++中面向对象的三大特征:封装、继承、多态。封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代码重用。而多态的目的则是为了接口重用。也就是说,不论传递过来的究竟是那个

C/C++中的内存对齐

内存对齐这个东西我一开始也是不知道的,后来又一次面试被问到了,然后张总跟我随口普及了一下,其实还是蛮简单的,有一点点C的基础估计五分钟就能学会内存对齐的规则了。但如果你想刨根问底,为什么我们现有的计算机要内存对齐,里面的学问还是蛮深的,涉及到了处理器、寄存器这些很核心的内存硬件。