java
文章平均质量分 74
才_先生
这个作者很懒,什么都没留下…
展开
-
CountDownLatch等待多个任务结束后再执行下一个任务
JUC包中的CountDownLatch类是一个同步工具类,可实现线程间的通信。主要适合于需要等待多个任务完成后才能继续执行下一个任务的场景。例如在service层中同时访问了多个远程接口,但是需要获取多个远程接口的返回值,然后把这些返回值聚合起来的场景。例如在主线程中开了多个线程去insert数据,主线程需要确保所有的数据都insert完之后才能继续执行下一步操作的场景。总之就是需要等待多个异步线程都处理完,主线程才能继续执行的场景都时候使用CountDownLatch。原创 2022-10-07 16:25:11 · 366 阅读 · 0 评论 -
JVM垃圾回收器
JVM有7种经典垃圾回收器。Serial 收集器,Serial Old收集器,ParNew收集器,Parallel Scavenge收集器,Parallel Old 收集器,CMS收集器,G1收集器。其中在单CPU时比较时候Serial+Serial Old的垃圾收集器。在多CPU环境下比较时候Parallel + Parallel Old收集器或G1收集器。原创 2022-09-04 14:51:36 · 265 阅读 · 0 评论 -
JVM的垃圾回收算法
JVM的垃圾回收算法按阶段分为两类:一类是标记阶段的算法,另外一类是清除阶段算法。垃圾标记阶段主要是判断哪些对象是存活对象,哪些对象是死亡对象,只有被标记为死亡的对象,GC在执行垃圾回收时,才会释放其占用的内存空间。在垃圾标记阶段有两种算法来判断对象是否存活,一种是引用计数算法,另外一种是可达性分析算法。...原创 2022-09-01 08:26:57 · 109 阅读 · 0 评论 -
内存溢出和内存泄漏
内存溢出是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;内存泄漏是指程序在申请内存后,无法释放已申请的内存空间原创 2022-08-24 22:10:55 · 201 阅读 · 0 评论 -
jvm常用监控和诊断工具
jvm常用监控和诊断工具有jps, jstat, jmap,jstck, jcmd。原创 2022-08-20 22:21:26 · 1198 阅读 · 0 评论 -
JVM的方法区详解
在jdk1.6之前,永久代存放了类的信息,包括字符串常量池,静态变量等信息,类加载得越多,永久代需要的内存空间就越大,但是在full GC的时候才有可能进行永久代的垃圾回收,但是在永久代的垃圾回收一般来说效率很低(首先该类的所有实例对象都已经从Java堆内存里被回收,其次加载这个类的ClassLoader已经被回收,对该类的Class对象没有任何引用,要满足这3个条件),导致永久代没办法被回收。已经删除永久代,用元空间替代了永久代,但这时候的元空间是本地内存实现的,而不是像堆这种jvm的虚拟内存。...原创 2022-08-18 23:31:10 · 491 阅读 · 0 评论 -
JVM类加载器和双亲委派机制
JVM类加载器执行过程包括加载阶段,链接阶段,初始化阶段原创 2022-08-17 13:04:21 · 90 阅读 · 0 评论 -
JVM内存模型和调优
JVM内存模型主要包含五部分的内容:堆、栈、本地方法栈、方法区(元空间)、程序计数器。原创 2022-08-14 22:51:12 · 708 阅读 · 0 评论 -
http请求webservice接口
webservice服务数量比较少,且不希望引入Apche CXF这种第三方的jar包时可以直接使用http请求的方式。本文提供http请求需要账号密码验证的webservice服务的示例。原创 2022-07-29 12:14:20 · 5161 阅读 · 0 评论 -
从java8之后HashMap的put方法分析HashMap是怎么实现的
从java8的HashMap的put方法分析hashMap是如何实现的。原创 2022-07-24 21:32:00 · 257 阅读 · 0 评论 -
java线程池创建线程过程及使用建议
java中经常需要用到多线程来处理一些业务,有很多人直接在使用多线程的时候直接继承Thread或者实现Runnable接口的方式来创建线程,但这种方式在创建及销毁线程耗费资源、线程上下文切换问题,同时创建过多的线程也可能引发资源耗尽的风险。这个时候引入线程池比较合理,方便线程任务的管理。本文就线程池的线程创建过程进行demo分析及如何创建线程池给出一些建议。...原创 2022-07-12 23:04:22 · 2229 阅读 · 0 评论