JVM
kangswx
记录自己的学习历程,欢迎关注、交流
展开
-
深入浅出JVM之垃圾回收
垃圾回收:释放垃圾占用的空间,防止内存泄露,有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。垃圾回收的原因:Java语言一个显著的特点就是引入垃圾回收机制,使C++程序员最头疼的内存管理的问题迎刃而解,因为有了垃圾回收机制,Java的对象不在有"作用域的概念",只有对象的引用才有作用域,垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。垃圾...原创 2019-07-24 15:44:21 · 403 阅读 · 0 评论 -
深入浅出JVM之内存分配
新生代占堆内存的1/3,其中Eden占新生代的80%,From和To各占10%老年代占堆内存的2/3对象分配的规则对象主要分配在新生代的Eden区如果启动了本地线程分配缓冲,将按线程优先级在TLAB上分配少数情况下也可能直接分配在老年代上GC参数指定垃圾回收:-Xms20M、-Xmx20M、-Xmn10M这三个参数分别限制了Java堆大小为20MB,不可扩展,其中...原创 2019-07-29 21:49:34 · 146 阅读 · 0 评论 -
深入浅出JVM之线上虚拟机工具
jpsJVM Process Status Tool是其中典型的jvm工具,除了名字像Unix的ps命令之外,它的功能也和ps命令类似,可以列出正在运行的虚拟机进程,并显示虚拟机正在执行主类(Main Class、main()函数所在的类)名称以及这些进程本地虚拟机唯一id,虽然功能比较单一,但它是使用频率最高的JDK命令工具。jps 查看pidjps -l 展示类的全限...原创 2019-07-30 21:07:03 · 257 阅读 · 0 评论 -
深入浅出JVM之可视化虚拟机工具Jconsole和VisualVM
jconsole(Java)Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具。它管理的是针对JMXBean进行管理,由于MBean可以使用代码、中间件服务器的管理控制台或者所有符合JMX规范的软件进行访问。jconsole的特点:jconsole集成了线程与内存的可视化展示jconsole连接使用本地连接:jconso...原创 2019-07-30 22:36:18 · 348 阅读 · 0 评论 -
深入浅出JVM之垃圾回收器
Serial垃圾回收器垃圾回收算法是内存收到的方法论,垃圾回收器是内存回收的具体实现。复制算法Serial是一个单线程的垃圾回收器Serial的特点“Stop The World”,它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。在用户不可见的情况下,把用户正常的工作线程全部停掉。使用场景:多用于桌面应用,client端的垃圾回收器桌面应用内存小,进行垃圾回...原创 2019-07-25 22:42:32 · 112 阅读 · 0 评论 -
深入浅出jvm之运行时数据区
在内存管理机制下,不需要再为每一个new操作去写配对的内存分配和回收代码,不容易出现内存泄漏和内存溢出等问题。jvm运行时数据区分布线程共享数据区:方法区、堆线程隔离数据区:虚拟机栈、本地方法栈、堆、程序计数器运行时数据区分布图程序计数器:记录字节指令的行号,在执行class的虚拟机栈:在执行一个方法的时候,jvm会创建一个栈帧,从入栈到出栈就是一个方法调用的...原创 2019-07-22 21:42:19 · 129 阅读 · 0 评论 -
深入浅出JVM之Java对象
创建一个Java对象A的底层顺序检查类A是否已经被加载(方法区)执行类加载、解析、初始化为新生对象分配内存空间将分配的内存空间初始化为零值,基础对象赋值为默认值,引用对象赋值为null调用对象的ini方法,static代码块创建一个Java对象的底层步骤细节虚拟机遇到一条new指令的时候,首先检查这个对应的类能否在常量池中定位到一个类的符号引用(是否在常量池中存在)...原创 2019-07-22 23:00:17 · 103 阅读 · 0 评论 -
深入浅出JVM之类加载机制
什么是类加载:JVM讲class文件字节码加载到内存中,并讲这些静态数据转化成方法区中的运行时数据结构,在堆(HotSpot在方法区中)生成一个代表这个类的java.lang.Class对象,作为方法区类的访问入口。类加载机制分为5步加载 -> y验证 -> 准备 -> 解析 -> 初始化加载、检验、准备、初始化和卸载这个五个阶段的顺序是固...原创 2019-08-20 20:20:46 · 238 阅读 · 0 评论