jvm
凯丽考恩
清茶_
跟自己的热爱
展开
-
java垃圾收集算法与垃圾收集器
前言 前面一篇记录jdk新特性的时候想必也看到很多关于垃圾收集器的改进,毕竟这块对虚拟机的性能提升还是很重要的,这篇就记录下关于虚拟机的垃圾收集过程。 垃圾收集说的直白点就是内存的回收,那我们首先得明确这里的内存回收主要针对的还是堆中的内存,因为程序计数器及栈这两个区域随线程而生,随线程而灭,我们不需要考虑过多的关于内存回收的问题,因为方法结束或者线程结束时,内存自然就跟着回收了。 如...原创 2019-03-30 20:25:24 · 548 阅读 · 0 评论 -
java类加载机制
目录 概述 类加载 加载阶段 验证阶段 准备阶段 解析阶段 初始化阶段 通俗总结 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。 java虚拟机中类加载的全过程,大致分为加载、验证、准备、解析和初始化五个阶段。而类加载的整个生命周期大概分为七个过程,简单分为:加载...原创 2019-03-30 21:04:00 · 131 阅读 · 0 评论 -
以ThreadLocal为例理解java的内存模型
ThreadLocal含义 ThreadLocal意为线程局部变量,只在线程的生命周期内起作用,当用ThreadLocal维护变量时,每个线程都会创建属于自己的变量副本,所有读写操作均只对变量副本生效而不会影响其他线程,是绝对的线程安全。 这里我们对比下普通变量在多线程的情况下所产生的线程安全问题,当多个线程对同一内存区域的数据进行运算时即会产生线程安全问题,这也正是线程的内存模型所导致的!下...原创 2019-03-05 18:02:41 · 1199 阅读 · 0 评论 -
java内存区域及对象的创建过程
前言 对于我们java程序员来说,在虚拟机自动内存管理机制的帮助下,我们并不需要关心对对象的内存分配与回收,不太容易出现内存泄漏和内存溢出问题,但是我们还是有必要去了解虚拟机这块的内存区域知识。 运行时数据区域 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间。下面先列出两张图以便能有个大概的认识先: ...原创 2019-03-24 20:24:08 · 268 阅读 · 0 评论 -
jvm运行参数、指令重排序及java跨平台特性理解
前言 这是jvm分享记录的最后一篇了,大致就记录下jvm运行参数设置、指令重排序含义及对java跨平台特性的理解。 jvm运行参数设置 -Xmx1024m:设置JVM最大堆内存为1024m。 -Xms1024m:设置JVM初始堆内存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收 完成后JVM重新分配内存。 -Xss128k:设置每个线程的栈大小。jdk1.5以后每个线...原创 2019-03-31 14:52:56 · 305 阅读 · 0 评论