当前位置: 首页 > news >正文

JVM知识点学习-1

学习视频:狂神说Java

类加载器和双亲委派机制

类加载器

作用:加载Class文件

流程:这里的名字car1。。在栈里面,但是数据在堆里面

类加载器的几个类型:

虚拟机自带的类加载器;启动类(根BootStrapClassLoader)加载器;扩展类(extClassLoader)加载器;应用程序(AppClassLoader)加载器;他是从应用程序加载器一层一层往上找的;

双亲委派机制

概念:每当一个类收到了类加载请求,他首先不会自己尝试加载此类,而是把这个请求委托给父类去完成,每一层次的类加载器都是如此,因此所有的类加载请求都应该传送到启动类加载器(BootstrapClassLoader),只有当父类加载器反馈自己无法完成这个请求的时候(在它的加载路径下没有找到所需加载的Class),子类才会尝试自己去加载;

优势:1.沙箱安全机制:比如自己写的String.class不会被加载,这样可以防止核心库被篡改;

2.避免类的重复加载,当父类ClassLoader已经加载了该类的时候,就不需要子类加载器再去加载;

类加载器生命周期:

沙箱安全机制:

Native、方法区

native:凡是带了native的方法,说明Java的范围达不到了,需要调用底层c语言的库;

使用了native后会进入本地方法栈,调用本地接口JNI;

JNI的作用:扩展Java的使用,可以融合不同的语言为Java所用;

PC寄存器:也叫程序计数器,每个线程都有一个程序计数器,他是线程私有的,就是一个指针,指向方法区的字节码,是一块非常小的内存空间;

方法区:

深入理解栈

栈的执行原理:

栈、堆、方法区的关系

走进HotSpot和堆

详细分析新生区和永久区和堆内存调优

使用Jpofiler工具分析oom的原因

出现错误时打dump文件,出现这个错误时会将dump文件到src同级目录

http://www.lryc.cn/news/495740.html

相关文章:

  • TypeScript和JavaScript区别详解
  • RVO动态避障技术方案介绍
  • Vue进阶之单组件开发与组件通信
  • OGRE 3D----5. OGRE和QML事件交互
  • ARIMA-神经网络混合模型在时间序列预测中的应用
  • 常见靶场的搭建
  • [MacOS] [kubernetes] MacOS玩转虚拟化最佳实践
  • HarmonyOS:@Provide装饰器和@Consume装饰器:与后代组件双向同步
  • git 上传代码时报错
  • 判断1456789876541是否为素数,是输出“是素数“,不是则输出“不是素数“
  • Flutter:封装发送验证码组件,注册页使用获取验证码并传递控制器和验证码类型
  • 亚马逊IP关联是什么?
  • Electron + vue3 打包之后不能跳转路由
  • docker安装clickhouse副本集群
  • vue超过三行显示省略号和查看更多按钮
  • 【软考速通笔记】系统架构设计师⑤——软件工程基础知识
  • Qt 详解QRubberBand
  • HTB:Love[WriteUP]
  • 【RabbitMQ 消息列队测试之:调试技巧】
  • Ubuntu FTP服务器的权限设置
  • @Pattern (用于校验字符串是否符合特定正则表达式)
  • 5G学习笔记之随机接入
  • webGL入门教程_03GLSL、OpenGL、WebGL 定义及关系
  • git基本操作说明
  • 微知-git如何添加空目录的几种方式?(.gitkeep, githook, gitconfig)
  • MySQL 数据库学习教程一:开启数据库探索之旅
  • Vue+Elementui el-tree树只能选择子节点并且支持检索
  • Lumos学习王佩丰Excel第十八讲:LOOKUP函数与数组
  • Git的基本使用操作
  • 【C语言】结构体嵌套