JVM
自己平时论坛学习整理的
转身已离去
毕业于江南大学,目前工作4年,主要从事于大数据开发和Java服务开发
展开
-
Class.forName和ClassLoader区别
解释 Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字节流”,获取到二进制流后放到JVM中。Class.forName()方法实际上也是调用的ClassLoader来实现的。 Class.forName(String className)的源码是 @CallerSensitive public static Class<?>..转载 2020-06-08 13:13:12 · 235 阅读 · 0 评论 -
JVM垃圾回收
1 揭开 JVM 内存分配与回收的神秘面纱 Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 **堆** 内存中对象的分配与回收。 Java 堆是垃圾收集器管理的主要区域,因此也被称作GC 堆(Garbage Collected Heap),从垃圾回收的角度,由于现在收集器基本都采用分代垃圾收集算法,所以 Java 堆还可以细分为:新生代和老年代:再细致一点有:Eden 空间、From Survivor、To Survivor 空间等。进一步.转载 2020-05-24 16:29:20 · 106 阅读 · 0 评论 -
Java内存区域
一、运行时数据区域 JDK1.8之前: JDK1.8: 线程私有: 程序计数器 虚拟机栈 本地方法栈 线程共享: 堆 方法区 直接内存(非运行时数据区的一部分) 1.1 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。 另外,为了线程切换后能恢复到正确的执行位置,每条...转载 2020-05-24 11:14:37 · 111 阅读 · 0 评论 -
JVM最完整最深入解析
Java运行时数据区 程序计数器:指向当前线程正在执行的字节码指令。线程私有的。 虚拟机站:虚拟机站是Java执行方法的内存模型。每个方法被执行的时候,都会创建一个栈帧,把栈帧压入栈,当方法正常返回或者抛出未捕获的异常时,栈帧就会出栈。 (1) 栈帧:栈帧存储方法的相关信息,包含局部变量表、返回值、操作数栈、动态链接 a) 局部变量表:包含了方法执行过...转载 2020-05-24 15:49:09 · 137 阅读 · 0 评论