JVM学习:

思维导图:在这里插入图片描述

1、java->class->classloader->runtime data area->执行引擎,本地方法接口/库。

2、90%的JVM调优都是在对堆进行调优。

3、类装载器的作用:装载class文件,实例化对象后,对象在栈里面,对象内存地址对应的实际属性和方法在堆里面。

加载器执行顺序:根加载器->EXC加载器->应用程序加载器。

4、加载顺序:双亲委派机制

类加载器收到类加载的请求

将这个请求向上委托一直到根加载器

根加载器会检查是否能够加载这个类,如果能加载结束,否则跑出异常通知子加载器进行加载

重复。我们写的大多数的类都是在应用程序加载器加载。

5、沙箱:字节码校验器,确保java文件遵守规范

6、凡是带了native关键字的方法,说明java的作用范围达不到了,需要调用底层C语言的库JNI

7、JNI:扩展java的使用,融合不通的语言为java使用,最初想要融合C和C++

8、JNI在内存区域中专门开辟了一块标记区域,Native Method Stack,登记Native方法,在最终执行的时候,加载本地方法库中的方法。

9、方法区被所有线程共享,所有字段和方法字节码,包括构造函数和接口代码也在此定义,简单说,所有方法的定义都在这里。此区域属于共享区间:静态常量、常量、类信息、运行时常量也存在方法去中,但实例变量存在于堆中。

10、栈内存,主管程序的生命周期和线程同步,线程结束,栈内存就释放了,对于栈来说,不存在垃圾回收的问题。

栈里面放的东西:8大基本类型,对象引用,实例的方法

11、栈运行原理,栈帧 栈如果满了,就会抛出StackOverFlow错误

12、一个JVM只有一个堆内存,堆内存的大小是可以调节的

13、如果出现了OOM错误,如何排查。

    定位到代码第几行,使用内存快照分析工具,jprofiler

    debug分析代码

使用jprofiler

        分析dump内存文件,快速定位内存泄漏

       获取堆中的数据

       获取大的对象。。。

14、GC垃圾回收

作用区域只有堆和方法区

对象引用计数法:给没个对象分配一个次数,先清理计数少的对象。并不高效,jvm一般不采用。

复制算法:1、每次GC会将伊甸园区活的对象移到幸存区中, 一旦伊甸园区被GC后,他是会空的。2、幸存区,谁空谁是to,在伊甸园区活下来的对象会进入幸存区的to。3、经历15次GC后活下来的对象进入养老区,这个次数可以设置,用于调优。

 

好处:没有碎片 坏处:浪费了内存空间,对了一半幸存区永远是空的,在极端情况下有弊端。

复制算法的最佳使用场景:对象的存货度较低,适用于新生区。

标记清除算法:

缺点:两次扫描,严重浪费时间,会产生内存碎片。

优点:不需要额外的空间。

标记压缩:在标记清楚的基础上进行移动压缩再清除

 

 各个算法在内存效率、内存整齐度、内存利用率各有优劣,没有最好的算法,只有最合适的算法。

15、JMM JAVA MEMORY MODEL java内存模型

 

 

 

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
宋红康是一位研究JVMJava虚拟机)的讲师,他深入探究了一线大厂的JVM实现以及其相关技术和工具。他的课程主题是“v1.1.mmap”,意味着他将讲解一些与内存映射文件相关的内容。 在讲师宋红康的课程中,学员将能够了解JVM如何利用内存映射文件(mmap)来管理内存资源。内存映射文件是一种将文件直接映射到进程内存中的技术。通过这种方式,JVM能够更有效地读取和操作大型文件,而无需显式地进行IO操作。 学员将学习如何使用mmap技术提高JVM的性能和效率。他们将了解到内存映射文件如何被JVM用于操作本地磁盘上的文件数据,并将其映射为虚拟内存。这将提供更快的IO速度和更有效的内存管理。 此外,宋红康还将介绍如何在JVM中利用mmap创建共享内存区域。共享内存允许不同进程之间共享数据,这对于某些高性能应用程序非常重要。学员将学习如何使用mmap创建和访问共享内存,并了解如何处理并发访问和数据同步的问题。 宋红康的讲座还将涵盖其他一些与JVM和内存映射文件相关的话题,如内存管理、垃圾回收和性能调优等。通过深入拆解一线大厂的JVM实现,学员将受益匪浅,并可以将所学知识应用于实际项目中,提升应用的性能和可靠性。 总结而言,宋红康的课程将帮助学员深入了解JVM的内部实现和基于内存映射文件的高性能技术。通过学习和实践,学员将能够更好地优化和调试JVM,并在实际应用中获得更好的表现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值