联系方式

咨询热线:400-998-6158

点击此处免费预约试听课程»

常见问题
学习资讯
师资介绍
学习资讯

Java程序员需要掌握的流程图有哪些

整理了一些Java基础流程图/架构图,做一下笔记,大家一起学习。
1、spring的生命周期
Spring作为当前Java较流行、较强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要;
首先容器启动后,对bean进行初始化
按照bean的定义,注入属性
检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给bean,如BeanNameAware等
以上步骤,bean对象已正确构造,通过实现BeanPostProcessor接口,可以再进行一些自定义方法处理。如:postProcessBeforeInitialzation。
BeanPostProcessor的前置处理完成后,可以实现postConstruct,afterPropertiesSet,init-method等方法,增加我们自定义的逻辑,
通过实现BeanPostProcessor接口,进行postProcessAfterInitialzation后置处理
接着Bean准备好被使用啦。
容器关闭后,如果Bean实现了DisposableBean接口,则会回调该接口的destroy()方法
通过给destroy-method指定函数,就可以在bean销毁前执行指定的逻
2、TCP三次握手,四次挥手
tcp的三次握手四次挥手是每个程序员都应该熟悉的。
三次握手:
*一次握手(SYN=1,seq=x),发送完毕后,客户端进入SYN_SEND状态
第二次握手(SYN=1,ACK=1,seq=y,ACKnum=x+1),发送完毕后,服务器端进入SYN_RCVD状态。
第三次握手(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状态,等待了某个固定时间(两个较大段生命周期,2MSL,2MaximumSegmentLifetime)之后,没有收到服务器端的ACK,认为服务器端已经正常关闭连接,于是自己也关闭连接,进入CLOSED状态。服务器端接收到这个确认包之后,关闭连接,进入CLOSED状态。
3、线程池执行流程图
线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,这避免了在处理短时间任务时创建与销毁线程的代价。线程池执行流程是每个开发*备的。
执行流程
提交一个任务,线程池里存活的核心线程数小于线程数corePoolSize时,线程池会创建一个核心线程去处理提交的任务。
如果线程池核心线程数已满,即线程数已经等于corePoolSize,一个新提交的任务,会被放进任务队列workQueue排队等待执行。
当线程池里面存活的线程数已经等于corePoolSize了,并且任务队列workQueue也满,判断线程数是否达到maximumPoolSize,即较大线程数是否已满,如果没到达,创建一个非核心线程执行提交的任务。
如果当前的线程数达到了maximumPoolSize,还有新的任务过来的话,直接采用拒绝策略处理。
JDK提供了四种拒绝策略处理类
AbortPolicy(抛出一个异常,默认的)
DiscardPolicy(直接丢弃任务)
DiscardOldestPolicy(丢弃队列里较老的任务,将当前这个任务继续提交给线程池)
CallerRunsPolicy(交给线程池调用所在的线程进行处理
4、JVM内存结构
JVM内存结构是Java程序员*掌握的基础。
程序计数器(PC寄存器)
程序计数器是一块较小的内存空间,可以看作当前线程所执行的字节码的行号指示器。在虚拟机的模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、异常处理、线程恢复等基础功能都需要依赖计数器完成。
Java虚拟机栈
与程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期与线程相同
每个方法被执行的时候都会创建一个"栈帧",用于存储局部变量表(包括参数)、操作数栈、动态链接、方法出口等信息。每个方法被调用到执行完的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
局部变量表存放各种基本数
学校联系方式

更多培训课程,学习资讯,课程优惠等学校信息,请进入 兰州城关区C语言培训兰州安宁区IT培训 网站详细了解,免费咨询电话:400-998-6158

相关课程