June1993
June1993
全部文章
java基础
linux(3)
spring(14)
springboot(7)
springmvc/mybatis(8)
Tomcat/Jmeter(4)
UML(2)
一些小工具(5)
分布式中间件(15)
前端(3)
多线程与并发编程(9)
大数据(9)
数据库(19)
数据结构与算法(29)
未归档(12)
环境及一些报错问题(14)
综合(6)
计算机基础(4)
计算机网络(5)
设计模式(10)
归档
标签
去牛客网
登录
/
注册
June1993的博客
全部文章
/ java基础
(共51篇)
Java并发编程-阻塞队列(BlockingQueue)的实现原理
原文地址
2019-07-15
0
493
线程池实现的原理
线程池的优点是可总结为以下三点: 线程复用 控制最大并发数 管理线程 1.线程复用过程 理解线程复用原理首先应了解线程生命周期。 在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态。...
2019-07-14
0
853
反射中Class.forName()和ClassLoader.loadClass()的区别
一 Java类装载过程 装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数...
2019-07-12
0
543
JVM 1.8 永久代---元空间 的变动
JDK8 HotSpot JVM 将移除永久区,使用本地内存来存储类元数据信息并称之为:元空间(Metaspace) 以下是JVM内存模型中方法区的变动 1.新生代:Eden+From Survivor+To Survivor 2.老年代:OldGen 3.永久代(方法区的实现) : P...
2019-07-11
0
1454
Java -- 偏向锁、轻量级锁、自旋锁、重量级锁
理解锁的基础知识 如果想要透彻的理解Java锁的来龙去脉,需要先了解以下基础知识。 基础知识之一:锁的类型 锁从宏观上分类,分为悲观锁与乐观锁。 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一...
2019-07-11
0
768
内存泄露排查工具MAT的使用
MAT下载链接 在程序运行时加上+HeapDumpOnOutOfMemoryError在OOM时会导出堆信息到hprof文件。 本次测试用的代码如下 public class Test02 { byte[] bytes = new byte[1*1024*1024]; pub...
MAT
内存泄露
2019-07-09
0
911
CMS收集器和G1收集器的区别
对于CMS收集器和G1收集器的不同,目前简单写了一下4点,有不足的地方后面再不断的更新修改。 CMS收集器和G1收集器的区别 区别一: 使用范围不一样 CMS收集器是老年代的收集器,可以配合新生代的Serial和ParNew收集器一起使用 G1收集器收集范围是老年代和新生代...
2019-07-07
0
682
深入理解wait/notify/notifyAll的作用
notify: 唤醒在监视器对象上等待的单个线程,此时调用该方法的代码继续执行。 notifyAll: 唤醒在监视器对象上等待的所有线程,此时调用该方法的代码继续执行。 第一、为什么会有wait/notify/notifyAll这几个方法? (1) wait/notify/notifyAll是为了避...
2019-07-07
0
526
GC调优相关
1.如何理解Latency和Throughput: 吞吐量和延迟 延迟一般包括单向延迟(One-way Latency)和往返延迟(Round Trip Latency),实际测量时一般取往返延迟。它的单位一般是ms、s、min、h等。 而吞吐量一般指相当一段时间内测量...
2019-06-30
0
721
Caffeine Cache
1. 前言 互联网软件神速发展,用户的体验度是判断一个软件好坏的重要原因,所以缓存就是必不可少的一个神器。在多线程高并发场景中往往是离不开cache的,需要根据不同的应用场景来需要选择不同的cache,比如分布式缓存如redis、memcached,还有本地(进程内)缓存如ehcache、Guav...
2019-06-26
0
788
首页
上一页
1
2
3
4
5
6
下一页
末页