- 博客(13)
- 收藏
- 关注
转载 C++ 多态 虚函数
为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题?面向对象的三大特征:封装 多态 继承普通虚函数 虚析构函数 纯虚函数 抽象类 接口类 隐藏 vs 覆盖 隐藏与覆盖之间的关系 早绑定和晚绑定 虚函数表什么是多态?相同对象收到不同消息或不同对象收到相同消息时产生的不同的动作。静态多态 vs 动态多态[-:>静态多态也叫做早绑定class...
2018-08-29 17:26:39 222
转载 sizeof计算对象所占内存的大小详解
首先声明sizeof并非为一个函数,而是C语言中的一个关键字, sizeof计算对象所占内存的大小,判断操作数的类型长度,以字节为单位;地址 的大小在32位系统占4个字节,在64位系统占8个字节,本实例都在32位机器上操作;数组名arr表示整个数组两种情况:sizeof(arr)以及 &arr。定义一个整型数组的情况#include <stdio.h>int mai...
2018-08-28 16:24:41 2013
转载 为什么在Python里推荐使用多进程而不是多线程?
最近在看Python的多线程,经常我们会听到老手说:“Python下多线程是鸡肋,推荐使用多进程!”,但是为什么这么说呢? 要知其然,更要知其所以然。所以有了下面的深入研究: 首先强调背景: 1、GIL是什么?GIL的全称是Global Interpreter Lock(全局解释器锁),来源是python设计之初的考...
2018-08-28 10:35:22 350
转载 class占用内存问题
一、背景知识1:首先遵从内存对齐规则2:只有虚函数会占4个字节,其他的函数不占内存;无论多少个虚函数,只有这一个指针,4字节。//注意一般的函数是没有这个指针的,而且也不占类的内存;3、静态变量由于属于所有类对象共同所有,所以不占内存二、典型的计算类的占用内存的问题1空类的问题class CBase { }; sizeof(CBase)=1;原始的C结构经过改造,...
2018-08-25 21:20:08 1873
原创 Leetcode 39. Combination Sum 40. Combination Sum II 216. Combination Sum III 377. Combination Sum IV
数组中没有重复数字,但一个数字可以重复使用,因此先将数组排序,再dfs注意dfs的起点p,下一次的起点是当前位置,才能保证每个数字使用了多次class Solution {public: vector<vector<int>> combinationSum(vector<int>& candidates, int target) {...
2018-08-25 18:35:27 337 1
原创 Leetcode 336. Palindrome Pairs
暴力法需要O(n^2*L),即遍历所有单词的两两前后组合,每个合并的单词再判断是否为回文串。优化方法是,对于每一个单词word1,能够与之相加得到回文串的单词word2必定满足:word1 + word2 = palindrome相同长度的:prefix(word1) = reverse(word2)因此可预处理用hashmap存下所有单词的reverse然后枚举每个单词...
2018-08-23 16:49:27 180
原创 Leetcode 198. House Robber 213. House Robber II 337. House Robber III
198. House Robber用滚动数组实现O(1)空间需要注意的是更新时index的处理class Solution {public: int rob(vector<int>& nums) { int n = nums.size(); vector<int> v(3, 0); for...
2018-08-21 14:54:50 249
转载 IO多路复用机制详解
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(3)IO多路复用(IO Multiplexing):即经...
2018-08-16 21:43:33 180
转载 redis数据结构(内存模型)以及常用命令
https://www.cnblogs.com/hjwublog/p/5639990.html文章主目录Redis数据类型 Redis常用命令 参考文档 Redis数据类型与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多,常用的数据类型主要有五种:String、List、Hash、Set和Sorted Set。Redis...
2018-08-13 16:17:26 251
转载 web服务器和客户端完成并行处理请求三大方式
从设计架构上来说,Nginx服务器是与众不同的。不同之处一方面提现在它的模块化设计,另一方面,也是更重要的一方面。体现在它对客户端请求的处理机制上。Web服务器和客户端是一对多的关系,Web服务器必须有能力同时对多个客户端提供服务。一般来说,完成并行处理请求工作有三种方式:多进程方式、多线程方式和异步方式。多进程方式服务器每当接收到一个客户端时,就由服务器主进程生成一个子进程出来和该...
2018-08-08 14:08:59 2235
转载 多线程性能及效率问题
一、[多线程概要] 随着计算机技术的发展,编程模型也越来越复杂多样化。但多线程编程模型是目前计算机系统架构的最终模型。随着CPU主频的不断攀升,X86架构的硬件已经成为瓶,在这种架构的CPU主频最高为4G。事实上目前3.6G主频的CPU已经接近了顶峰。 如果不能从根本上更新当前CPU的架构(在很长一段时间内还不太可能),那么继续提高CPU性能的方法就是超线程CPU模式。那么,作业系统、应用...
2018-08-06 16:51:42 1740
转载 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~...
2018-08-06 16:00:47 333
转载 用户用浏览器访问一个网站的时候背后的过程与步骤是怎样的?
作者:邱永臣叫西门追雪链接:https://www.zhihu.com/question/20513729/answer/96332435来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 假设你用一个全新的浏览器(第一次启动的那种),访问百度(http://www.baidu.com/),在你敲入网址并按下回车之后,将会发生以下神奇的事情:浏览器先尝试从...
2018-08-06 15:58:21 3462
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人