软件工程师面试题小练(带参考答案)
班级每周练习题
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) {}
}


