网络篇
咖问:如何区分协议头信息和正文信息:
咖问:哎http很熟悉呀?来,如何区分协议头信息和正文信息?
倒霉蛋:额···没怎么注意呀
时隔N天后查阅到: /r/n/r/n
好吧,貌似抓包的时候有看到这个,哎没多想呀,还会有这种问题,奇葩
咖问:get和post有区别吗?post是数据安全的吗?http怎么保证安全哩?
倒霉蛋:区别呀~~~
于服务端,get是请求服务器数据,post是上传给服务器数据
咖说:额好吧这个差不多够了。
倒霉蛋:(嘴长了··话多的后果就是搬起石头砸自己的脚)get好像对数据不加密,它是直接将数据跟在url后面,post是放在form里面的,数据比较安全。
后来想了想,还是低估程序员的实力了
摘下知乎有个很有意思的回答:
好吧明白了,要想数据安全,要不自己写加密算法,或者用https的方式。
语言篇
迭代器失效
咖问: 呵呵~很熟悉STL,来迭代器失效了解不?
倒霉蛋:。。。听过这个名词,没注意过着玩意~
咖说: l.erase(iter++)会不会失效?
倒霉蛋:额看着好像不会吧~
于是。。。。。回家了
好吧确实会失效
向容器中添加或者删除元素的时候可能会使迭代器失效,失效的迭代器不指向任何元素,像vector使用的是连续分配的内存,删除元素的时候会使得后面的元素向前移动,不过调用erase(iter)时会返回下一个元素的地址,因此需要重新对迭代器赋值操作:
iter = l.erase(iter);
迭代器其实也是一种广义指针,指向容器中的数据
参考链接:https://blog.csdn.net/lujiandong1/article/details/49872763
函数指针的应用场景
倒霉蛋:(心里默想)应用场景,额好难啊,妈呀会用倒是,做过的项目中也没怎么用到过,也就玩玩demo而已,这一定是魔鬼问的问题!
恩 回调函数呀,中断函数呀,按钮点击事件呀,记得有用过connect绑定,感觉都是挺像用到函数指针的。
咖说:呵呵点击事件,qt吗,那不是信号与槽?
倒霉蛋:好吧我也是挺倒霉的,大佬,我说的没错呀,信号与槽内部实现是基于回调函数,而回调函数也是基于函数指针的嘛
它只不过是使用发布订阅者模式来实现的,恩有机会得好好看一看信号与槽的原理,这块对设计模式也是有提高的,立个flag
应用场景抱歉笨拙的嘴表达不出来拍手称赞的解释于是挂链接:http://blog.sina.com.cn/s/blog_80d90e6f0101lh6t.html
操作系统篇:
多线程为什么不能太多?
倒霉蛋:额~我觉得不能太多是因为创建以及销毁的时候有开销以及cpu在切换的过程中也会开销,所以不能太多
咖说:恩,基本差不多
线程也是有成本的,虽然说相对进程来说创建的成本相对小,但还是会分配线程内核对象的,并且会保留1MB的堆栈空间,且单核系统中并向的功能也是依赖于时间片的,频繁的上下文切换也是很耗时的一种操作。
参考链接:https://blog.csdn.net/happydeer/article/details/52725860