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

班级每周练习题

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) {}

}

软件工程师面试题小练(带参考答案)相关文档

最新文档

返回顶部