![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 94
不属于这个时代の愚者
这个作者很懒,什么都没留下…
展开
-
JVM-垃圾回收器
文章目录一、垃圾回收器分类二、垃圾回收器的性能指标2.1 吞吐量一、垃圾回收器分类JVM规范没有明确给出标准按一次执行GC线程数Client模式默认使用串行GC按照与用户进程的工作模式按照碎片化整理来分二、垃圾回收器的性能指标红色是比较重要的指标不可能三角,最多两项最重要两项:吞吐量和暂停时间。两者是相对关系,后面的GC器都会从这两个方面取其一发杨广大2.1 吞吐量...原创 2021-02-08 22:42:31 · 363 阅读 · 0 评论 -
JVM-垃圾回收的名词概念
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、System.gc()二、内存溢出及内存泄漏2.1 内存溢出2.2 内存泄漏三、STW四、垃圾回收的并行与并发五、安全点六、引用分类:6.1 强引用6.2 软引用前言呵呵~奇怪的小知识:现在的手机之所以变快,是因为手机的内存增加,应用程序会缓存在内存中,就不用每次都从外存读取进来了,就会觉得打开应用很快。这些不必要的缓存会在内存空间不足时被清除,这就是软弱引用的原理。一、System.gc()显示的调用垃圾回收原创 2021-02-08 08:26:59 · 174 阅读 · 0 评论 -
JVM-垃圾回收算法
文章目录前言一、垃圾是什么?二、标记算法1:引用计数算法三、标记算法2:可达性分析算法四、finalize()方法五、垃圾清除算法1:标记-清除算法六、垃圾清除算法2:复制算法七、垃圾清除算法3:标记-压缩(整理)算法八、“最优”“算法”-分代收集算法九、 增量收集算法十、 分代算法前言学完了JVM运行数据区已经一些补充的内容,终于来到了垃圾回收相关的内容。Java的内存泄漏是指,某些对象已经没用了,但是还是有引用指向它们【Java不存在循环引用,泄漏而真正的元凶是那些在GC roots链中却..原创 2021-02-07 19:09:37 · 151 阅读 · 0 评论 -
JVM-StringTable
文章目录前言一、String特性二、String的基本操作2.1 添加到常量池2.2 拼接前言String是java语言最重要的类,也是最重要的数据类型。但是你真的了解String吗?试从jvm角度分析String以及深度剖析String类的常见面试题一、String特性声明方式:(1)字面量即String a = “a”;(2)对象式String a = new String(“a”);经过堆的学习,new出来的肯定都是去堆中创建对象。而字面量方式会去堆中的字符串常量池引用对象,原创 2021-02-07 09:17:50 · 389 阅读 · 2 评论 -
JVM-执行引擎
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、二、机器码、汇编语言、三、解释器四、JIP编译器五、模式切换前言字节码文件不能在OS平台运行前后端字节码位置【翻译文本的位置】方法区一、橙色:Javac绿色:解析器蓝色:后端编译器二、机器码、汇编语言、机器码:0-1代码,不同计算机汇编语言:将一个指令变成助记符,翻译【汇编】高级语言:需要翻译成汇编字节码:中间状态,执行引擎三、解释器慢四、JIP编译器Just In Time原创 2021-02-06 18:22:36 · 168 阅读 · 0 评论 -
JVM-对象实例化与直接内存
文章目录一、java中创建对象的方法二、字节码分析对象创建三、JVM创建对象的步骤四、对象内存布局五、对象访问六、直接内存一、java中创建对象的方法new对象的方法主要有:直接new,工厂类、创建者类的获取对象方法。Class类的getInstance(); 只可以创建无参public构造Constructor类的getInstance() 无参有参构造器都能使用,且private也可以使用第三方类库提供对象clone(),Object类的clone()反序列化: 从网络、文件等二进制流原创 2021-02-05 20:13:26 · 104 阅读 · 0 评论 -
JVM-方法区
文章目录前言一、方法区与栈、堆的配合二、演进三、参数设置四、内存溢出与内存泄漏五、方法区结构六、常量池与运行时常量池七、方法区变化及原因深究八、方法区的垃圾回收九、运行时数据区总结及几道面试题前言方法区是最重要的三个区域(堆、栈、方法区)之一。堆、栈、方法区都是在JVM启动时创建的,方法区既和堆相似,又有较为严格的区分。在官方的描述的,方法区被称为“Non-Heap”(非堆),目的是为了与堆区进行区分。方法区具有OOM 和GC,但是由于Metaspace较为固定,且常常不设置上限(-1),因此不容原创 2021-02-04 22:07:05 · 118 阅读 · 0 评论 -
JVM-堆
文章目录前言一、堆空间二、使用步骤1.引入库2.读入数据总结前言一个进程对应一个JVM实例,一个JVM实例对应一个运行时数据区,而其中的所有线程都共享同一个堆和方法区,因此堆必须考虑线程安全的问题。JVM启动实际:BootStrap一、堆空间每一个java程序对应一个进程,也就是一个JVM实例。可以通过查看堆空间的波动:/** * 演示堆内存分配 */public class Demo1 { public static void main(String[] args) {原创 2021-02-04 08:55:57 · 457 阅读 · 1 评论 -
JVM-本地方法接口、本地方法栈
文章目录一、本地方法接口二、本地方法栈一、本地方法接口本地方法是指使用native来修饰的方法。这种方法明面上没有方法体,和抽象方法很像,其实他是有方法体的,而方法体并不是通过java编写的,而是通过其他语言(尤其是C/C++)编写的。在一些底层的类可以看到,如Object类与Thread类许多末尾为0的方法(基本上末尾为0的本地方法与末尾不带0的java方法是一样的效果,如start()与start0())诞生背景:java与上世纪95年代诞生,当时是c/c++鼎盛的时候,为了沾沾大佬的光,也原创 2021-02-01 16:51:48 · 163 阅读 · 0 评论 -
JVM-运行时数据区-程序计数器,虚拟机栈
JVM的运行时数据区分为五个部分:方法区(HotSpot JVM独有),堆区(垃圾回收的重点区域),本地栈(存放jvm运行时所需的c/c++库),文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy原创 2021-02-01 09:00:28 · 330 阅读 · 0 评论 -
JVM-类加载
一次程序执行全流程:类加载后的信息放在方法区,方法区在不同版本的jvm有不同的实现。一、类加载子系统类加载器从网络或者内存中加载字节码文件ClassLoader只负责加载类, 而程序能否得到有效执行主要看ExecutionEngine的发挥。加载流程:硬盘上的.class文件 -> ClassLoader通过二进制流的形式装载到jvm -> 进入方法区(.class首先到达的内存区域,与Class共同驻足这片区域的还有字符串和数字常量池) -> 按照.class文件的原创 2021-01-30 07:28:11 · 230 阅读 · 0 评论