61问题:参加面试前需要了解及准备哪些方面的知识材料?

回答:①对于初级程序员,偏向考察算法和数据结构,对于高级程序员,关注专业技能和项目经验。

调试能力和编程习惯很重要,在共享桌面面试中着重考察。

③行为面试中的自我介绍保持在30-60s,着重介绍学习和工作经历情况。

④你在改项目中碰到的最大问题是什么,怎么解决的?

⑤从这个项目中学到了什么

⑥什么时候会和团队其它成员有什么冲突,你是怎么解决的;与其它团队有什么样的问题冲突,怎么解决的?

⑦提前想好自己性格、能力和目标定位,网络公司还是涉及软硬件的公司等。

⑧越简单的面试题,面试官对这道题的期望就越高,需要能够很完整的解决问题 。

62问题:New动态分配 Delete 释放内存

回答:new  动态分配一般格式:1. 指针变量名 =new  类型标识符;

                2.指针变量名  =new  类型标识符(初始值);

                3.指针变量名  =new  类型标识符 [内存单元个数];   开辟数组的定义方法

new运算符返回的是一个指向所分配类型变量的指针。

delete 释放内存一般格式:1.delete p;  2.delete []p;删除变量p的地址空间,释放int内存。 --堆区(优先队列)  delete p实际意思是删除p所指向的目标地址,释放它所占的内存,而非删除p指针。

对于delete 有两大问题: 1.内存泄露  2.重复释放 

int* p=new int;

delete p;

p=NULL;   //上完厕所洗手的好习惯

63问题:内存分配中的堆和栈的区别

回答:1.栈内存存储的是局部变量而堆内存存储的是实体;

            2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;

            3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。

64问题:算法的时间复杂度和空间复杂度的计算?

回答:参见网址https://blog.csdn.net/jsjwk/article/details/84315770