南京QYFF公司面试
1.自我介绍。
不要不说简历里的东西,简历基本上不会细看。
2.两种类型的区别
基本数据类型和引用数据类型的区别主要在存储方式上:
基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;
引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。
例如:我有一个类MyDate,其中有属性day,mouth,year等,有构造方法(带参数);
现在为其创建一个对象MyDate d1 = new MyDate(8,8,2008);
在内存中的具体创建过程是:
1)首先在栈内存中位其d1分配一块空间;
2)然后在堆内存中为MyDate对象分配一块空间,并为其三个属性设初值0,0,0;
3)根据类MyDate中对属性的定义,为该对象的三个属性进行赋值操作;
4)调用构造方法,为三个属性赋值为8,8,2008;(注意这个时候d1与MyDate对象之间还没有建立联系)
5)将MyDate对象在堆内存中的地址,赋值给栈中的d1;通过句柄d1可以找到堆中对象的具体信息。
3.装箱(Boxing)与拆箱(Unboxing)
装箱:把基本类型用其相应的引用类型包装起来,使其有对象的性质。int 到 Interge
拆箱:与装箱相反,把引用类型的对象简化成值的基本类型。
看http://www.cnblogs.com/wangchenyang/archive/2012/02/01/2334760.html
4.多态与重载
自己理解。
多态:同一个方法,在属于同一个父类的各个子类中,会有不同的实现。/把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
重载:同一个方法名,不同的参数类型。
5.链表实现栈
top(),pop(),push()
一个head指针指向顶,在尾设置一个NULL作为标兵。
6.排序
冒泡,希尔,插入,堆排序,快排,归并
快排在有序的情况下最慢。
7.二叉树的遍历
前序,中序,后序
9.left join,inner join
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
10.数据库表的设计,各种范式
四种范式之间存在如下关系: