加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Java程序员必备的一些流程图

发布时间:2019-07-20 03:21:11 所属栏目:建站 来源:Jay_huaxiao
导读:1.spring的生命周期 Spring作为当前Java最风行、最强盛的轻量级容器框架,相识认识spring的生命周期很是有须要; 首介绍器启动后,对bean举办初始化 凭证bean的界说,注入属性 检测该工具是否实现了xxxAware接口,并将相干的xxxAware实例注入给bean,如Bean
副问题[/!--empirenews.page--]

Java措施员必备的一些流程图

 1.spring的生命周期

Spring作为当前Java最风行、最强盛的轻量级容器框架,相识认识spring的生命周期很是有须要;

Java措施员必备的一些流程图

  • 首介绍器启动后,对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的三次握手四次挥手是每个措施员都应该认识的。

Java措施员必备的一些流程图

三次握手:

  • 第一次握手(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,2 Maximum Segment Lifetime)之后,没有收随处事器端的 ACK ,以为处事器端已经正常封锁毗连,于是本身也封锁毗连,进入 CLOSED 状态。处事器端吸取到这个确认包之后,封锁毗连,进入 CLOSED 状态。

3.线程池执行流程图

线程池:一种线程行使模式。线程过多会带来调治开销,进而影响缓存局部性和整体机能。而线程池维护着多个线程,守候着监视打点者分派可并发执行的使命,这停止了在处理赏罚短时刻使命时建设与烧毁线程的价钱。线程池执行流程是每个开拓必备的。

Java措施员必备的一些流程图

执行流程

  • 提交一个使命,线程池里存活的焦点线程数小于线程数corePoolSize时,线程池会建设一个焦点线程行止理赏罚提交的使命。
  • 假如线程池焦点线程数已满,即线程数已经便是corePoolSize,一个新提交的使命,会被放进使命行列workQueue列队守候执行。
  • 当线程池内里存活的线程数已经便是corePoolSize了,而且使命行列workQueue也满,判定线程数是否到达maximumPoolSize,即最大线程数是否已满,假如没达到,建设一个非焦点线程执行提交的使命。
  • 假如当前的线程数到达了maximumPoolSize,尚有新的使命过来的话,直接回收拒绝计策处理赏罚。

JDK提供了四种拒绝计策处理赏罚类

  • AbortPolicy(抛出一个非常,默认的)
  • DiscardPolicy(直接扬弃使命)
  • DiscardOldestPolicy(扬弃行列里最老的使命,将当前这个使命继承提交给线程池)
  • CallerRunsPolicy(交给线程池挪用地址的线程举办处理赏罚

4.JVM内存布局

JVM内存布局是Java措施员必需把握的基本。

Java措施员必备的一些流程图

措施计数器(PC 寄存器)

措施计数器是一块较小的内存空间,可以看作当前列程所执行的字节码的行号指示器。在假造机的模子里,字节码表明器事变时就是通过改变这个计数器的值来选取下一条必要执行的字节码指令,分支、轮回、非常处理赏罚、线程规复等基本成果都必要依靠计数器完成。

Java假造机栈

  • 与措施计数器一样,Java假造机栈也是线程私有的,它的生命周期与线程沟通
  • 每个要领被执行的时辰城市建设一个"栈帧",用于存储局部变量表(包罗参数)、操纵数栈、动态链接、要领出口等信息。每个要领被挪用到执行完的进程,就对应着一个栈帧在假造机栈中从入栈到出栈的进程。
  • 局部变量表存放各类根基数据范例boolean、byte、char、short等

当处所法栈

与假造机栈根基相同,区别在于假造机栈为假造机执行的java要领处事,而当处所法栈则是为Native要领处事。

Java堆

  • GC堆是java假造机所打点的内存中最大的一块内存地区,也是被各个线程共享的内存地区,在JVM启动时建设。
  • 其巨细通过-Xms(最小值)和-Xmx(最大值)参数配置,-Xms为JVM启动时申请的最小内存,-Xmx为JVM可申请的最大内存。
  • 因为此刻网络器都是回收分代网络算法,堆被分别为新生代和晚年月。新生代由S0和S1组成,可通过-Xmn参数来指定新生代的巨细。
  • 全部工具实例以及数组都在堆上分派。
  • Class文件中除了有类的版本、字段、要领、接口等描写信息外,尚有一项信息是常量池,用于存放编译器天生的各类标记引用,这部门内容将在类加载后放到要领区的运行时常量池中。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读