xqn2017

导航

2017年12月18日 #

231. Power of Two

摘要: 原文题目: 231. Power of Two 阅读全文

posted @ 2017-12-18 20:07 xqn2017 阅读(115) 评论(0) 推荐(0)

226. Invert Binary Tree

摘要: 原文题目: https://leetcode.com/problems/invert-binary-tree/description/ AC代码: 阅读全文

posted @ 2017-12-18 19:34 xqn2017 阅读(137) 评论(0) 推荐(0)

2017年12月13日 #

C语言函数入参压栈顺序为什么是从右向左?

摘要: 看到有人提问到,在处理printf/cout时,压栈顺序是什么样的?大家都知道是从右往左,也就是说从右往左的计算,但是,这里的计算不等于输出。 a++和++a的压栈的区别:在计算时,遇到a++会记录此时的a的值作为最后的输出结果。遇到a和++a的时候则不会将此时的计算结果作为最终的输出,只会修改a的 阅读全文

posted @ 2017-12-13 19:13 xqn2017 阅读(2854) 评论(0) 推荐(1)

2017年12月12日 #

对C++ 虚函数的理解

摘要: C++多态是通过虚函数实现的,虚函数允许派生类重新定义基类的成员函数,而派生类重新定义基类的做法称为覆盖,或者重写。多态和非多态的区别在于函数地址是早绑定还是晚绑定,如果函数的调用在编译期间就确定了调用地址,并产生代码,是静态的,就是说地址是早绑定的,而如果函数调用的地址不能在编译器期间确定,需要在 阅读全文

posted @ 2017-12-12 20:10 xqn2017 阅读(172) 评论(0) 推荐(0)

CHAR 和VARCHAR的区别

摘要: CHAR(10)是不可变长度为10的字符串,占的存储空间始终为10个字符的长度,而VARCHAR(10)是可变长度的字符串,故而可以节省空间。例如:储存"aaaaabbbbb",则CHAR(10)需要10个字符的空间来储存,VARCHAR(10)也需要10个字符的空间;储存"aaa",则CHAR(1 阅读全文

posted @ 2017-12-12 20:09 xqn2017 阅读(126) 评论(0) 推荐(0)

什么是索引

摘要: 索引是对数据库表中一列或者多列的值进行排序的一种结构,为了提高表的搜索效率而对某些字段中的值建立的目录优点:1.保证数据表中每一行数据的唯一性 2.加快数据的检索速度 3.加速表与表之间的连接 4.使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间 5.通过使用索引,可以在查询 阅读全文

posted @ 2017-12-12 20:09 xqn2017 阅读(226) 评论(0) 推荐(0)

悲观锁和乐观锁

摘要: 所谓悲观锁就是每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,比如行锁、表锁、读锁、写锁等乐观锁就是每次去拿数据时都认为别人不会修改,所以不上锁,在更新的时候会判断在此期间有没有其他任务去修改数据可以使用版本号等机制;乐观锁适用于写比较少的情况,可以省去锁的开销,提高吞吐量。 阅读全文

posted @ 2017-12-12 20:09 xqn2017 阅读(104) 评论(0) 推荐(0)

将IP地址字符串转为32位二进制

摘要: def str2bin(s): temp = s.split('.') result = '' for i in range(len(temp)): temp[i] = str(bin(int(temp[i]))[2:]) if len(temp[i]) < 8: temp[i] = '0'*(8-len(temp[... 阅读全文

posted @ 2017-12-12 20:08 xqn2017 阅读(1969) 评论(0) 推荐(0)

python 深拷贝、浅拷贝、引用

摘要: (1)直接赋值,传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变(2)copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变(3)深拷贝,包含对象里面的子对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变 阅读全文

posted @ 2017-12-12 20:05 xqn2017 阅读(152) 评论(0) 推荐(0)

python 问答

摘要: 1、list和tuple有什么区别? list是可变的,可以添加list.append,可以插入list.insert,可以改变元素值list[2] ='a';而tuple在初始化的时候就确定了,不能改变,代码更加安全 2、什么是生成器? 在Python中,这种一边循环一边计算的机制,称为生成器:g 阅读全文

posted @ 2017-12-12 19:59 xqn2017 阅读(219) 评论(0) 推荐(0)

并发、并行、同步、异步、多线程的区别?

摘要: 并发:同一时间段有几个程序都处于已经启动到运行完毕之间,并且这几个程序都在同一个处理机上运行,并发的两种关系是同步和互斥;互斥:进程之间访问临界资源时相互排斥的现象;同步:进程之间存在依赖关系,一个进程结束的输出作为另一个进程的输入。具有同步关系的一组并发进程之间发送的信息称为消息或者事件;并行:单 阅读全文

posted @ 2017-12-12 19:55 xqn2017 阅读(15679) 评论(0) 推荐(6)

进程之间的通信方式

摘要: 1、管道:管道用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有公共祖先的进程之间的通信2、信号3、消息队列4、共享内存5、内存映射6、信号量7、套接口 阅读全文

posted @ 2017-12-12 19:54 xqn2017 阅读(262) 评论(0) 推荐(0)

多线程的优缺点

摘要: 优点:(1)多线程技术使程序的响应速度更快 ,因为用户界面可以在进行其它工作的同时一直处于活动状态;(2)当前没有进行处理的任务时可以将处理器时间让给其它任务;(3)占用大量处理时间的任务可以定期将处理器时间让给其它任务;(4)可以随时停止任务;(5)可以分别设置各个任务的优先级以优化性能。缺点:每 阅读全文

posted @ 2017-12-12 19:53 xqn2017 阅读(861) 评论(0) 推荐(0)

进程和线程的区别

摘要: 1、定义:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单元2、定义:线程是进程的一个实体,是CPU调度和分派的基本单元,它是比进程更小的能够独立运行的基本单位,线程本身不拥有系统资源,和同属一个进程的其他线程共享进程所拥有的全部资源3、区别:1 阅读全文

posted @ 2017-12-12 19:52 xqn2017 阅读(186) 评论(0) 推荐(0)

为什么单例模式中的成员函数都是静态的?

摘要: 你只要弄明白单例模式是如何实现的,就能从本质上理解这个问题;单例模式实现过程如下:首先,将该类的构造函数私有化(目的是禁止其他程序创建该类的对象);其次,在本类中自定义一个对象(既然禁止其他程序创建该类的对象,就要自己创建一个供程序使用,否则类就没法用,更不是单例);最后,提供一个可访问类自定义对象 阅读全文

posted @ 2017-12-12 19:50 xqn2017 阅读(1073) 评论(0) 推荐(0)