第 3 页 共 16 页
软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。
五、什么是 OOP?OOP 相对于面向过程编程有哪些优点?
OOP,Object-Oriented Programming ,面向对象编程不同于面向过程编程:
(1)OOP 关注对象和角色,也就是事物的本质
1)OOP 把客观世界中的对象抽象成对应的类;
2)通过类构造实例;
3)通过依赖、继承、实现等形式建立对象间的通信关系
(2)OOP 易于扩展,增加或改变业务的功能,无需大幅改动改变源代码
(3)OOP 易于建模, OOP 就是软件架构师在计算机高级语言中对客观世界的抽象和再现,人们可
以很好地理解和建立起计算机中的抽象模型
六、谈谈 Overload 和 Override 的区别。
答:
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding 是父类与子
类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。如果在子类中定义某方法
与其父类有相同的名称和参数,我们说该方法被重写 (Overriding) 。子类的对象使用这个方法时,将调用
子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,
它们或有不同的参数个数或有不同的参数类型,则称为方法的重载 (Overloading) 。Overloaded 的方法是
可以改变返回值的类型。
七、谈谈 HashMap 和 Hashtable 的区别。
答: HashMap 是轻量级的(线程不安全的,效率高的)集合, Hashtable 是重量级的(线程安全的,效
率低的)集合。
都属于 Map 接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步
的。
八、请问 abstract class 和 interface 有什么区别?
答:
1) 接口没有任何的实现 ,而抽象类它可以有部分的实现也可以没有 ;
2) 如果需要复用或者共享部分代码 ,应该用抽象类而不是接口 ;
3) 继承无法解决类型的转换问题 ,接口就是为了解决这一问题而产生的 (Java的单继承是接口产生
的根本原因 ) 接口是一种抽象的第三方规范 ,跟对象没什么直接关系。
九、请问软件开发中的设计模式你会使用哪些?
答:我熟悉的设计模式有单例模式, DAO 模式,模板方法,工厂模式,委托代理模式, MVC 模式等。
Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一个实例存在。
Singleton 模式一般形式 :
定义一个类,它的构造函数为 private 的,它有一个 static 的 private 的该类变量,在类初始化时实
例话,通过一个 public 的 getInstance 方法获取对它的引用 ,继而调用其中的方法。
十、类的核心特性有哪些?
类具有封装性、继承性和多态性。
封装性:
类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量
和类中方法的实现细节。
评论0
最新资源