JVM
文章平均质量分 71
JVM相关技术介绍
红枫忆梦
书到用时方恨少
展开
-
JVM:GC和GC-Tuning
JVM:GC和GC-TuningGC的基础知识1.什么是垃圾C语言申请内存:malloc freeC++: new deleteJava: new ?自动内存回收,编程上简单,系统不容易出错,手动释放内存,容易出两种类型的问题:忘记回收多次回收没有任何引用指向的一个对象或者多个对象(循环引用)2.如何定位垃圾引用计数(Reference Count)不能解决循环引用的问题对象的引用数变为0了,那么该对象就成为垃圾了。根可达算法(Root Searching原创 2021-07-10 07:05:26 · 452 阅读 · 0 评论 -
JVM(五):Java运行时数据区和常用指令
JVM(五):Java运行时数据区和常用指令jvms 2.4 2.5指令集分类基于寄存器的指令集(JVM)基于栈的指令集 Hotspot中的Local Variable Table = JVM中的寄存器Runtime Data AreaPC程序计数器存放指令位置虚拟机的运行,类似于这样的循环while(not end) { 取PC中的位置,找到对应位置的指令; 执行该指令; PC++;}JVM stacksFrame – 每个方法对应一个栈帧L原创 2021-06-16 07:34:21 · 316 阅读 · 0 评论 -
JVM(四):Java内存模型(JMM)
JVM(四):Java内存模型(JMM)硬件层的并发优化基础知识存储器的层次结构从CPU到各层所需要的时间硬件层数据一致性协议多线程一致性的硬件层支持(老的CPU使用的)Intel中的MESI-Cache一致性协议协议很多,Intel采用MESI(https://www.cnblogs.com/z00377750/p/9180644.html)现代CPU数据一致性实现 = 缓存锁(MESI…) + 总线锁读取缓存以cache line为基本单位,目前64bytes;原创 2021-05-30 07:56:53 · 237 阅读 · 0 评论 -
JVM(三):ClassLoadingLinkingInitializing
类加载过程Loading:将Class文件加载到内存中类加载器 类加载器中的类加载过程类加载器范围(来自Launcher源码)sun.boot.class.pathBootstrap ClassLoader加载路径java.ext.dirsExtensionClassLoader加载路径java.class.pathAppClassLoader加载路径测试代码package com.lele.jvm.classloader;..原创 2021-05-20 19:24:17 · 308 阅读 · 2 评论 -
JVM(二):Class文件格式
二进制字节流数据类型:u1 u2 u4 u8 和 _info(表类型)_info 的来源是hotspot源码中的写法查看16进制格式的ClassFilesublime/notepad/IDEA插件-BinEd有很多可以观察ByteCode的方法javap:显示class文件信息(java自带)JBE:可以直接修改JClassLib:IDEA插件之一classfile构成classFile { u4 magic; u2 minor_version;..原创 2021-05-16 07:29:22 · 131 阅读 · 0 评论 -
JVM(一):JVM入门
1.JVM基础知识Java的解释和编译是可以混合的。100多种语言可以直接运行在JVM虚拟机上JVM是一种规范java virtual machine specificationshttps://docs.oracle.com/en/java/javase/13/https://docs.oracle.com/javase/specs/index.html虚构出来的一台计算机字节码指令集(汇编语言)内存管理:栈 堆 方法区等2.javac的过程3.常见的JVM实原创 2021-05-15 22:12:07 · 292 阅读 · 0 评论 -
如何避免内存泄漏、溢出
什么是内存泄漏、溢出内存泄漏 memory leak:对象可达但不可用;是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。内存溢出 out of memory:内存大小不够;是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的...转载 2018-10-12 20:26:57 · 528 阅读 · 0 评论