软件工程师面试题小练,带参考答案

进修社 人气:6.14K

142面试题小练

软件工程师面试题小练,带参考答案

一、JAVA编程基础部分 1. "=="和equals方法究竟有什么区别?

答:==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。

Equals()方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。 2. 作用域(访问修饰符)public,private,protected,以及不写时的区别?

答:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。(C#中是internal) 访问修饰符

public

protected

friendly

private 当前类 √ √ √ √ 同一个包 √ √ √ × 子孙类 √ √ × × 其他包 √ × × ×

3. 请简述面向对象有哪四个方面的特征?

答:

1).封装:即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变;

2).抽象:抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处

3). 继承:继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。

4).多态: 多态性增强了软件的灵活性和扩展性。

4. 请简述abstract class和interface的区别。

答:含有abstract修饰符的class即为抽象类,接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。

两者的语法区别:

1).抽象类可以有构造方法,接口中不能有构造方法。

2).抽象类中可以包含非抽象的.普通方法,接口不能。

3). 抽象类中可以包含静态方法,接口中不能

4). 一个类可以实现多个接口,但只能继承一个抽象类。

两者的应用上的区别:

1).接口更多在系统框架设计方法发挥作用。

2).抽象类在代码实现方面发挥作用,实现代码的重用。

5.下面代码有错吗?有何错误呢?

①. abstract class Name {

private String name;

public abstract boolean isStupidName(String name) {}

}

答:大侠们,这有何错误?

答案: 错。abstract method(抽象方法)必须以分号结尾,且不带花括号。(没有方法体)

②. abstract class Something {private abstract String doSomething (); }

答:这好像没什么错吧?

答案: 错。abstract的methods(方法)不能以private修饰。abstract的methods(方法)就是让子类implement(实现)具体细节的,怎么可以用private把abstract私有化呢

③. class Something {int i;public void doSomething() {tln("i = " + i);}}

答:有什么错呢? 看不出来啊。

答案: 正确。输出的是"i = 0"。int i属於instant variable (实例变量,或叫成员变量)。instant variable有默认值。int的默认值是0。

二、SQL Server部分 1. 可以用什么来确保表格里的字段只接受特定范围里的值?

答:这个问题可以用多种方式来回答,但是只有一个答案是“好”答案:Check约束,它在数据库表格里被定义,用来限制输入该列的值。触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check限制而不是其他的方式来限制域的完整性。 2.什么是主键?什么是外键?

答:主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。

3.什么是事务?有哪四个属性(原则)?

答:事务是作为一个逻辑单元执行的一系列操作,要么全都执行,要么全都不执行。一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务。

附:

原子性:事务必须是原子工作单元;对于其数据修改,

一致性:事务在完成时,必须使所有的数据都保持一致状态。

隔离性:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。

持久性:事务完成之后,它对于系统的影响是永久性的。

4.触发器和存储过程有何区别?(讲解时回顾触发器和存储过程分别是什么)

答:只有一个区别:存储过程,你调用的时候才会执行

触发器就是你设定了数据库里比如删除,修改,插入时,就会自动触发执行