刷题知识点
李贰一
这个作者很懒,什么都没留下…
展开
-
操作符总结 i = a++ && ++b && d++;
在这里还想提一件事影响复杂表达式的三个主要因素它可以分为三类优先级 结合性 是否控制求值顺序1.优先级在这里不作说明 详见各类书籍的优先级表2.结合性即 L-R 和 R-L 两种计算顺序3.是否控制求值顺序 此项比较特殊 主要运用于逻辑计算( && || ,)举个栗子int i = 0 , a = 0, b = 2, c = 3, d = 4...原创 2018-05-10 20:30:28 · 1727 阅读 · 0 评论 -
内存对齐的规则和原因
对齐原因内存对齐大部分的参考资料都是如是说的:平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。对其规则:1.第一个成员在与结构体变量...原创 2019-07-14 17:12:43 · 483 阅读 · 0 评论 -
关于http服务中session和cookie协议头
首先这两种机制出现的原因都是因为http是无状态协议,第一次请求与第二次请求之间没有联系,所以分别在客户端和服务器的位置引进了这两个机制来缓存cookies是服务器本地机器上存储的小段文本并随每一个请求发送至同一服务器,是客户端保存状态的方案,内容包括名字、值、过期时间、路径和域eg:浏览器能记录你的登陆信息(用户名和密码)在客户端第一次请求服务器时session自底生成s...原创 2019-07-10 09:54:21 · 296 阅读 · 0 评论 -
设计模式之单例模式和观察者模式
单例模式定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式的优势 由于只有一个实例,减少了内存开支,特别是一个对象需要频繁地创建、销毁时且进行创建和销毁的性能又无法优化时,该模式具有绝对优势 只有一个实例减少了系统的性能开销,当一个对象的产生需要比较多的资源的时候,可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决 ...原创 2019-06-25 14:32:22 · 428 阅读 · 0 评论 -
二分查找 两种版本(寻找最先出现的某数)
二分查找相信大家都十分清楚,其应用前提是在已有序的数组中查找,目的是提高查找效率由O(N)到O(logN)//基础版本int binarySearch(const vector<int> data, int num){ int begin = 0; int end = sizeof(data) / sizeof(int) - 1; while(beg...原创 2018-11-10 14:55:05 · 320 阅读 · 0 评论 -
软硬链接区别
软硬链接区别1>软连接可以根据目录创建,硬链接不行2>软链接是一个新的文件,而硬链接是一个源文件的别名(硬链接和源文件使用相同的inode节点)3>软链接可以跨分区建立,但是硬链接不可以4>源文件删除后,软连接就找不到源文件了,而硬链接没有什么影响(仅仅是链接数-1)...原创 2018-10-29 21:24:13 · 163 阅读 · 0 评论 -
https和http有什么区别?
https和http有什么区别?http协议不适合传输一些敏感信息(密码支付信息),https在其基础上增加了SSL协议(依靠证书来验证服务器身份并将通信加密)//网景设计的SSL协议1>https协议需要到ca申请证书,一般免费证书较少,所以一般需要支付费用2>http是超文本传输协议,信息是明文传输,htttp则是具有安全性的ssl加密传输协议3>htt...原创 2019-07-10 09:45:52 · 290 阅读 · 0 评论 -
关于多态实现的一些问题
多态实现的原理首先多态实现必须依赖于两个条件:1)子类重写父类的虚函数2)必须通过基类的指针或者引用来调用虚函数实现多态的机制是通过虚函数表(函数指针的指针数组)来实现的,虚表的最后是一个nullptr虚表的构建过程:1)子类拷贝父类的虚表2)进行重写过的函数指针进行相同偏移量位置的替换3)将新增的虚函数添加在虚表结尾key:多继承未重写的虚函数放在第一个继承基...原创 2019-07-10 09:41:00 · 166 阅读 · 0 评论 -
抽象类和接口的区别
抽象类和接口的区别抽象类是不能实例化的类,接口是一组方法集合抽象类是本体的抽象,接口是行为的抽象1>接口不含成员变量,抽象类可以有2>接口全是纯虚函数,抽象类可以有普通函数3>接口全是public,抽象类可以有其他权限4>接口支持多继承,抽象类仅支持单继承5>接口不能存在static方法,抽象类可以6>继承抽象类可以不进行重...原创 2019-04-04 17:07:51 · 116 阅读 · 0 评论 -
进程&线程
进程? 进程=程序段+数据段+进程控制段1)进程是一个运行起来的程序,程序在运行的时候需要加载到内存,进程是操作系统资源分配的基本单位2)进程在linux下就是也可以说是一个PCB(进程控制块),实际上是一个task_struct结构体,底层实现上是一个双向链表 ps -ef(查看所有标准进程)3)标识符(PID),状态(僵尸"资源泄漏"、运行、停止、可中断/不可中断睡眠),...原创 2019-04-04 16:55:16 · 137 阅读 · 0 评论 -
B/S模式&C/S模式
C/S:客户/服务器模式 服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统;客户端需要安装专用的的客户端软件B/S:Brower/Server 客户机只要安装一个浏览器(Browser);服务器安装大型数据库,浏览器通过Web Server同数据库进行数据交互 环境:C/S建立在局域网上,B/S建立在广域网上 安全:C/S面向相对固定的用户群,对信息安全控制力高...原创 2019-05-09 09:45:36 · 281 阅读 · 0 评论 -
动态内存的开辟 经典举例
首先在这里展示一段经典死循环codeint i =0;int arr[10]={0};for(i=0;i<=12;i++){printf("hehe\n"):;arr[i]=0;}此段代码的结果是进入 嘲笑你的无限hehe当中究其原因 在这里要简单了解一下动态内存开辟的知识在我们的内存开辟过程中局部变量属于栈区内存的开辟而栈区的内存开辟规律是先使用高地...原创 2018-05-20 11:25:06 · 187 阅读 · 0 评论 -
模拟实现LRU
前两天有个面试问我了一个问题?拿什么容器实现LRU最合适当时脑子很乱,第一次说用堆来存储,后面又想到改为链表存储更适合其位置不断变化的特征就匆匆过去了后来自己想了想又查了点资料,最终以下文的方式实现LRU为了保持高效的put以及find我们在这里需要用到底层为哈希的容器提高查询效率,加上改变位置的灵活性,这里我选择使用了unordered_map以及list的组合方式class ...原创 2019-09-08 12:39:36 · 370 阅读 · 1 评论