随笔分类 - 【基础】-JVM学习
JVM学习
摘要:JVM会为局部变的一个Slot都分配一个访问索引,通过这个索引即可成功访问到局部变量表中指定的局部变量值 当一个实例方法呗调用的时候,它的方法参数和方法体内部定义的局部变量将会按照顺序被复制到局部变量表中的每一个Slot上 如果需要访问局部变量表中的一个64bit的局部变量值时,只需要使用前一个索引
阅读全文
摘要:在HotSpot JVM中主要有以下几种线程: 虚拟机线程:这种线程的操作是需要JVM达到安全点才会出现。这些操作必须在不同的线程中发生的原因是他们都需要JVM达到安全点,这样堆才不会变化。这种线程的执行类型包括“stop-the-world”的垃圾收集,线程栈收集,线程挂起以及偏向锁撤销。 周期任
阅读全文
摘要:类加载器的作用: 类加载器的作用:将class文件字节码内容加载到内存中,并将这些静态数据转换为方法区的运行时数据结构,然后在堆中生成一个代表这个类的java。浪。Class对象,作为方法区中类数据的访问入口。 类缓存:标准的JavaSE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将
阅读全文
摘要:先上图,再解释 创建(new)完对象之后,根据新创建对象的,会发生如果所示的三种存储情况: 1.根据对象的引用,新创建的对象可能会存储在栈里边,对象会依赖栈帧,栈帧弹出,对象也会消失; 2.对象如果存储在堆中,同时对象的大小超过了to区的60%,那么对象会直接进入老年区(永久区); 3.和第二种情况
阅读全文
摘要:1.JMM是什么? JMM内存模型是一个抽象的概念,也是一种规范,目得是解决由于多线程通过共享内存进行通信时,存在的本地内存数据不一致、编译器会对代码指令重排序、处理器会对代码乱序执行等带来的问题。 2.JMM的作用? 在多线程的环境下,每个线程都已一个工作内存,同时还有一个主内存,主内存是线程共享
阅读全文
摘要:算法类型: 标记-清除算法:标记无用对象,然后进行清除回收。缺点:效率不高,无法清除垃圾碎片。 标记-压缩算法:标记无用对象,让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。 复制算法:按照容量划分二个大小相等的内存区域,当一块用完的时候将活着的对象复制到另一块上,然后再把已使用的内存
阅读全文
摘要:一、GC存在的意义 GC是垃圾回收的意思(gabage collection),内存处理器是编程人员容易出现问题的地方,忘记或者错误的内存回收导致程序或者系统的不稳定甚至崩溃,java的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,java语言没有提供释放已分配内存的俄显示操作方
阅读全文
摘要:JVM内存模型包括:类加载器、执行引擎、本地方法库、运行时数据区 1.类加载器 JVM中类加载器会把 Java 代码转换成字节码,主要使用双亲委派机制实现类的加载,加载机制为:当前程序类-->扩展程序类-->根加载器(rz.jar) 类加载器分类: 启动类加载器(Bootstrap ClassLoa
阅读全文
摘要:1.堆内存溢出 堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,当这些对象所占据空间超过最大堆容量时,就会产生OutOfMemeorgError的异常,堆内存溢出异常示例如下: public class ArrayDe
阅读全文

浙公网安备 33010602011771号