7月15日

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.下面代码有问题么?有错误的话,怎么改?
1class A{
  public A(String s){
  }
}
class B extends A {  //错误 ,修改方法:1.B 在构造方法中super("") 或 2.A类中增加 无参构造方法。
}

已知:
interface A{
  int m();
}
interface B{
  int m();
}
interface C{
  void m();
}
interface X{
 void m(int a);
}

2interface D extends A,B{ ///正确
}
3interface E extends B,C{ //错误  返回值类型冲突了。修改接口不同名才可以。
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YMurmansk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值