1.简历技术要点中的小知识点

1.进程和线程的区别:

进程是资源分配的最小单位,线程是程序执行的最小单位。

2.常见的垃圾回收算法

引用计数算法、根据搜索法、复制算法。

3.垃圾回收机制

在JVM内存模型中,有三个是不需要进行垃圾回收的:程序计数器、JVM栈、本地方法栈。因为它们的生命周期是和线程同步的,随着线程的销毁,它们占用的内存会自动释放,所以只有方法区和堆需要进行GC。

4.HTTP协议及TCP协议

TCP协议对应于传输层,而HTTP协议对应于应用层。Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。

5.TCP 连接的“ 三次握手 ”与“ 四次挥手 ”

三次握手的背景:TCP位于传输层,作用是提供可靠的字节流服务,为了准确无误地将数据送达目的地,TCP协议采纳三次握手策略

(1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。

(2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。

(3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。

四次挥手:别名连接终止协议,其性质为终止协议

6.Servlet 的生命周期

服务器启动时或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf),该servlet对象去处理所有客户端请求,service(ServletRequest req,ServletResponse res)方法中执行,最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。其中加载阶段无法观察,但是初始化、服务、销毁阶段是可以观察到的。

7.MVC设计模式

Model-View-Controller,把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个块,即模型层、视图层、控制层。

8.三层架构

将我们的程序代码按照业务上的不同,进一步将其划分为三层

展示层:servlet、视图来充当。获取请求参数、校验、直接调用service层代码,返回结果,调用不同的视图

业务层:整个业务功能最为核心的,区别于其他功能点的这些代码都应该写在业务层,如何去实现,如何去获取,如何去组装

数据层:dao层。简单的发起一个一个的sql调用

9.单例设计模式

应用程序运行过程中,获得某一个类型的实例的时候,获得的*始终是同一个*

10.工厂设计模式和代理模式

  • 工厂方法模式一种创建对象的模式,它被广泛应用在jdk中以及Spring和Struts框架中;

  • 工厂方法模式基于”输入”,应用在超类和多个子类之间的情况,这种模式将创建对象的责任转移到工厂类;

    代理模式:东带辉

11.ioc和aop

IOC(控制反转)就是依赖倒置原则的一种代码设计思路。就是把原先在代码里面需要实现的对象创建、对象之间的依赖,反转给容器来帮忙实现。
Spring IOC容器通过xml,注解等其它方式配置类及类之间的依赖关系,完成了对象的创建和依赖的管理注入。实现IOC的主要设计模式是工厂模式。

AOP(面向切面)是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)。

AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。

使用AOP的好处

  • 降低模块的耦合度
  • 使系统容易扩展
  • 提高代码复用性