Java习题
1.多态的必要条件是什么?
继承 重写 向上转型
2.解释下开闭原则及好处?
简单讲就是:对修改关闭,对扩展开放。 在面向对象编程领域中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”, 这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。 好处: 改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用质量的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程 有利于代码复用,提高代码可维护性,
3.解释封装及好处?
就是把客观的事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的信息隐藏。隐藏实现细节,使得代码模块化 访问权限的控制常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏共同被称为封装 具体体现:属性,方法,类 a.属性私有化,提供公共方法对属性的访问。 b.复杂逻辑,提供封装方法,方便调用 c.属性和行为抽象成类,方便模块调用 好处:信息隐藏保证数据安全,代码复用,简化开发,有利于扩展和维护
4.解释MVC及好处?
MVC 概念 MVC 即是 Model View Controller 的缩写,Model 即模型,View 即视图,Controller 即控制器。
MVC 是一种非常流行的软件设计模式,把代码分根据功能为视图、模型、控制器三个部分。
M:Model 模型,主要用于业务处理逻辑及数据存取,表示数据的状态。
V: View 视图,主要用于展现数据(列表数据,详细数据等),收集数据(注册,调查报告等)。体现在和用户的交互界面。
C:Controller,主要用于接收客户端请求及根据请求调用响应的Model。并根据 Model 执行的结果来跳转到不同的视图。
MVC 作用 解耦合,可扩展和维护 通过控制层把视图层和业务层分离,使业务层代码和视图层代码分离,有利于扩展和维护。
有利于分工开发和管理 分为三层,这样有利于前后端分离,前端开发人员只专注视图层,后端开发人员专注业务逻辑及数据处理。各司其职,互不干涉。
重用性 可以提高代码可重用性,控制层 可以根据需要可以重复的调用 Model 来完成数据加工处理。
5.重写的特点?
同名同参, 子类方法访问权限大于父类, 异常类型声明和返回值类型小于父类。
6.谈谈三次握手?
- 第一次
第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。 - 第二次
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。 - 第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
7.下面代码有问题么?有错误的话,怎么改?
1)
class A{
public A(String s){
}
}
class B extends A {
}
已知:
interface A{
int m();
}
interface B{
int m();
}
interface C{
void m();
}
interface X{
void m(int a);
}
2)
interface D extends A,B{
}
3)
interface E extends B,C{
}
|