JAVA
文章平均质量分 62
fufucen
技术服务于业务
展开
-
Activiti7
Activiti7概念使用步骤部署activiti:引入activiti,把业务系统和activiti集成到一起。定义流程:建模工具定义业务流程.bpmn文件。部署流程:保存业务流程。activici是通过数据库将流程持久化的。启动流程实例:开始一次业务流程。用户查询待办任务:所有业务流程都交由activiti管理,使用activiti提供的api方法可以查询当前流程执行到哪一步了。用户处理待办任务:用户处理完待办任务后,activiti会自动推进工作流。流程结束:待办任务处理完成,且没原创 2021-12-07 16:58:31 · 506 阅读 · 0 评论 -
并发线程池
并发线程池常用线程池执行器JDK四个内置线程池线程池参数拒绝策略常用线程池执行器JDK自带线程池执行器(ThreadPoolExecutor)spring封装的线程池执行器(ThreadPoolTaskExecutor)后者其实是对前者的一个封装JDK四个内置线程池如下,不过实际一般使用自定义的线程池,视服务器情况而定。newFixedThreadPool:创建一个定长线程池,超出的任务会在队列中等待。newCachedThreadPool:创建一个可缓存线程池,空闲了可以回收,少了可以创原创 2021-04-16 17:28:39 · 117 阅读 · 0 评论 -
堆内存变量的使用和volatile关键字
工作线程使用对象时通过对象引用地址找到堆内存中的变量后,并不是直接操作堆内存中的对象,而是拷贝一份到自己的私有内存中,完成操作后再把值写回到堆内存。volatile关键字可以让工作线程每次使用对象时都去堆内存获取最新的值(每一步的原子操作都去堆内存操作),但是注意效率会降低。...原创 2021-04-16 09:43:18 · 193 阅读 · 0 评论 -
JDK1.8新特性
JDK1.8新特性Stream 流式运算Lambda表达式函数式接口方法引用日期时间 APIStream 流式运算Stream流式思想可以理解为车间的生产线,Stream不是一种数据结构,不会保存数据,而是对数据进行加工处理。不会改变数据源。中间方法是懒加载,如果没有结束方法是不会执行中间方法的。Stream是一次性操作,当结束方法执行完成后,代表加工完成了,Stream就无法再进行其他操作了。**parallelStream(并行流)**也就是有多条生产线的车间,他的效率比Stream(串行流)高,但原创 2021-04-14 17:19:01 · 87 阅读 · 0 评论 -
GC垃圾回收
GC垃圾回收垃圾判断引用计数算法可达性分析算法垃圾回收标记清除算法复制算法标记整理算法分代收集算法垃圾判断引用计数算法给对象加一个引用计数器,有一个地方引用时就+1,引用释放就-1,为0时代表可回收。但是因为无法解决循环引用问题,java虚拟机并没有采用这种方式。可达性分析算法通过GC Root对象作为起点,根据对象引用关系,向下搜索,所走过的路径称为引用链,当一个对象到GC Root没有任何引用链相连,证明对象是可回收的。可作为GC Root的对象:虚拟机栈(栈帧中的本地变量表)中引用的对原创 2021-04-09 16:28:57 · 94 阅读 · 0 评论 -
JVM内存模型
程序计数器每个线程私有,记录程序执行到哪一步。通过这个计数器的值来选取下一条需要执行的字节码指令。因为所存的只是下一条指令的地址,就算死循环也不会让内存溢出,所以不存在OutOfMemoryError(内存溢出) 异常。虚拟机栈每个线程私有,每个 Java 方法执行的时候都会创建一个方法栈帧,并从虚拟机栈的顶部入栈(压栈),执行完成后从虚拟机栈出栈(弹栈)。会抛出 StackOverflowError(堆栈溢出,线程请求的栈深度大于虚拟机所允许的深度) 和 OutOfMemoryError(内存溢出.原创 2021-04-09 14:56:23 · 89 阅读 · 0 评论 -
JavaSE(扩展学习,面试可能问到)
Java跨平台原理java提供了对应不同操作系统,不同位数的java虚拟机(JVM),屏蔽java程序在各种不同的硬件和操作系统中对内存的访问的差异,而保证对外统一的接口(java Api)。这样对于开发人员来说,只要按照JavaApi开发即可。如果需要部署到不同环境,只需要在该环境上安装对应版本的虚拟机即可。Java内存模型PC寄存器/程序计数器:每个线程私有,用于记录当前线程执行到哪一步,意外中断后用于恢复。Java栈 Java Stack:Java栈总是与线程关联在一起的,每当创建一个线原创 2021-01-06 18:34:21 · 117 阅读 · 0 评论