知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技  > 软件

java实现执行流程图

发表时间:2022-03-25来源:网络

整理了一些Java基础流程图/架构图,做一下笔记,大家一起学习。

Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要;

首先容器启动后,对

按照bean的定义,注入属性

检测该对象是否实现了xxxAware接口,并将相关的xxxAware

以上步骤,bean对象已正确构造,通过实现BeanPostProcessor接口,可以再进行一些自定义方法处理。 如:postProcessBeforeInitialzation。

BeanPostProcessor的前置处理完成后,可以实现postCon

通过实现BeanPostProcessor接口,进行postProcessAfterInitialzation后置处理

接着Bean准备好被使用啦。

容器关闭后,如果Bean实现了DisposableBean接口,则会回调该接口的destroy()方法

通过给destroy-method指定函数,就可以在bean销毁前执行指定的逻

2.

tcp的三次握手四次挥手是每个

三次握手:

第一次握手(SYN=1, seq=x),发送完毕后,客户端进入 SYN_SEND 状态

第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1), 发送完毕后,

第三次握手(ACK=1,ACKnum=y+1),发送完毕后,客户端进入 ESTABLISHED 状态,当服务器端接收到这个包时,也进入 ESTABLISHED 状态,TCP 握手,即可以开始

四次挥手:

第一次挥手(FIN=1,seq=a),发送完毕后,客户端进入 FIN_WAIT_1 状态

第二次挥手(ACK=1,ACKnum=a+1),发送完毕后,服务器端进入 CLOSE_WAIT 状态,客户端接收到这个确认包之后,进入 FIN_WAIT_2 状态

第三次挥手(FIN=1,seq=b),发送完毕后,服务器端进入 LAST_ACK 状态,等待来自客户端的最后一个ACK。

第四次挥手(ACK=1,ACKnum=b+1),客户端接收到来自服务器端的关闭请求,发送一个确认包,并进入 TIME_WAIT状态,等待了某个固定

3.

执行流程

提交一个任务,线程池里存活的核心线程数小于线程数

如果线程池核心线程数已满,即线程数已经等于corePoolSize,一个新提交的任务,会被放进任务队列workQueue排队等待执行。

当线程池里面存活的线程数已经等于corePoolSize了,并且任务队列workQueue也满,判断线程数是否达到maximumPoolSize,即最大线程数是否已满,如果没到达,创建一个非核心线程执行提交的任务。

如果当前的线程数达到了maximumPoolSize,还有新的任务过来的话,直接采用

JDK提供了四种拒绝策略处理类

AbortPolicy(抛出一个异常,默认的)

DiscardPolicy(直接丢弃任务)

DiscardOldestPolicy(丢弃队列里最老的任务,将当前这个任务继续提交给线程池)

CallerRunsPolicy(交给线程池调用所在的线程进行处理

4.

JVM内存结构是Java程序员必须掌握的基础。

程序计数器(PC 寄存器)

程序计数器是一块较小的内存

Java虚拟机栈

与程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期与线程相同

每个方法被执行的时候都会创建一个"栈帧",用于存储局部变量表(包括

局部变量表存放各种基本数据类型boolean、byte、char、short等

本地方法栈

与虚拟机栈基本类似,区别在于虚拟机栈为虚拟机执行的

Java堆

GC堆是java虚拟机所管理的内存中最大的一块内存区域,也是被各个线程共享的内存区域,在JVM启动时创建。

其大小通过-Xms(最小值)和-Xmx(最大值)参数设置,-Xms为JVM启动时申请的最小内存,-Xmx为JVM可申请的最大内存。

由于现在收集器都是采用分代收集算法,堆被划分为新生代和老年代。新生代由S0和S1构成,可通过-Xmn参数来指定新生代的大小。

所有对象实例以及数组都在堆上分配。

Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放

方法区

也称”永久代” ,它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。

运行时常量池:是方法区的一部分,其中的主要内容来自于JVM对Class的加载。

Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编译器生成的各种符号引用,这部分内容将在类加载后放到方法区的运行时常量池中。

Java的

Java

6.springMVC执行流程图

User向服务器发送request,前端控制Servelt DispatcherServlet捕获;

DispatcherServlet对请求URL进行

DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter.

提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)

Handler执行完成后,返回一个ModelAndView对象到DispatcherServlet

根据返回的ModelAndView,选择一个适合的ViewResolver

ViewResolver 结合Model和View,来渲染视图

将渲染结果返回给客户端。

7.

JDBC执行流程:

连接数据源

处理数据库响应并返回的结果

8.spring cloud组件架构

Spring Cloud是一个基于

所有对外的请求和服务,我们都通过Zuul来进行转发,起到

最后我们使用

Spring Cloud Ribbon是基于

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜