- 博客(5)
- 收藏
- 关注
原创 JUC包详解
JUC包详解atomic包locks包atomic包###CAS算法了解atomic包之前,首先需要了解的一个基本概念是CAS。CAS即Compare And Swap,就是比较并交换,这个算法的核心思想简而言之就是如果一个值,没有被别人改过,就原子性的去修改它。这种做法是为了解决数据读写的非原子操作的问题,如执行i++操作,这个操作从程序员的角度上来看,可能会误以为这是一步操作,但是其实这个操作不是一个原子操作,可以看作是两步操作,1 读取i的值,2 将i的值赋为读取值加一。第一步和第二步
2021-04-12 02:01:34
1173
原创 虚拟机性能监控、故障处理工具
虚拟机性能监控、故障处理工具基础工具jpsjstatjinfojmapjhatjstack基础工具JPS(JVM Process Status Tool)jps类似UNIX中的ps命令,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及本地虚拟机唯一ID(LVMID)。命令格式:jps [options] [hostid]jps可以查询开启了RMI服务的远程虚拟机进程状态,参数hostid就是RMI注册表的主机名。选项可选参数见下表。选项说明
2021-04-11 19:42:13
90
原创 JAVA多线程基础
多线程基础线程基础对于计算机而言,每个任务称为一个进程,而一个进程至少有一个线程。对于JVM来说,每个线程拥有自己的虚拟机栈、本地方法栈、程序计数器、线程之间共同使用堆、方法区。线程的生命周期NEW:当程序创建一个Thread对象时,该对象处于NEW状态。RUNNABLE:Thread对象调用Start()方法,线程进入RUNNABLE状态,这个状态下线程具备执行资格,等待CPU调度。RUNNING:一旦CPU调度中选中了处于RUNNABLE状态的线程,线程进入运行状态,此时开始执行真正的代
2021-04-11 17:35:57
104
原创 JAVA虚拟机之GC
垃圾收集器和内存分配策略对象存活判断垃圾收集算法垃圾收集器选择收集器对象存活判断存活判断算法判断对象是否需要被进行垃圾回收主要是需要判断对象是否“存活”。下面介绍引用计数算法和可达性分析算法。引用计数算法顾名思义就是给对象添加引用计数器,当有地方引用这个对象时,计数器加一,当计数器为零时,说明对象死去,可以进行垃圾回收,这个算法的弊端同样很明显,当有两个不再使用的对象,彼此之间相互引用,则计数器永远不为零,无法对其进行垃圾回收。然而可达性分析算法可以解决这个问题,可达性分析算法主要是通
2021-04-11 02:49:45
88
原创 JVM内存模型
JVM内存区域与内存溢出异常程序计数器虚拟机栈本地方法栈java堆方法区运行常量池直接内存对象的创建与内存布局对象的访问定位OOM异常运行时数据区域java虚拟机运行过程产生的数据区域中主要包括:堆、方法区、虚拟机栈、本地方法栈、程序计数器。其中程序计数器、虚拟机栈、本地方法栈为线程私有;堆、方法区为线程共有,也是发生垃圾收集的区域。程序计数器程序计数器可以看作是字节码文件里的行号指示器,字节码解释器工作就是改变计数器的值来控制执行的字节码指令。程序计数器是唯一不会发生OO
2021-04-11 02:48:14
314
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人