JVM java虚拟机-----内存

1.jvm定义:java程序的运行环境
2.好处

  • 一次编写 处处运行
  • 自动内存管理,垃圾回收功能
  • 数组下标越界检查
  • 多态

3.jvm jre jdk的区别
在这里插入图片描述

4.学习路线
在这里插入图片描述
5.内存结构

  • 程序计数器
  • 虚拟机栈
  • 本地方法栈
  • 方法区

6.程序计数器的作用、特点
记住下一条jvm指令执行的地址
*特点线程私有的,且不会存在内存溢出

7.虚拟机栈的定义及特点

  • 每个线程运行时所需的内存,称为虚拟机栈
  • 每个栈由多个栈帧组成,对应着每次方法调用时所占用的内存
  • 每个线程只能由一个活动栈帧,对应着当前正在执行的那个方法

8、堆的定义及特点
定义:通过new关键字,创建对象都会使用到堆内存
特点:

  • 它是线程共享的,堆中对象都需要考虑线程安全的问题
  • 有垃圾回收机制

9、方法区的定义
在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。

10、运行时常量池
在这里插入图片描述

  • 常量池,就是一张表,虚拟机指令根据这行常量表找到要执行的类名、方法名、参数类型、字面量等信息
  • 运行时常量池,常量池是*.class文件中的,它的常量池信息就会放到运行时常量池,并把里面的符号地址变为真实地址

11、StringTable(串池)的特性

  • 常量池中的字符串仅是符号,第一次用到时才变为对象
  • 利用串池的机制,才能避免重复创建字符串对象
  • 字符串常量拼接的原理是StringBuilder
  • 字符串常量拼接的原理是编译期优化
  • 可以使用intern方法,主动将串池中还没有的字符串对象放入串池中(1.8中将这个字符串对象尝试放入串池,如果有则并不会放入,如果没有则放回串池,会把串池中的对象返回)

12、直接内存(操作系统内存)
定义:

  • 常见于NIO操作时,用于数据缓冲区

  • 分配回收成本较高,但读写性能高

  • 不受jvm内存回收管理

     							***帅气的远远啊***
    
发布了87 篇原创文章 · 获赞 79 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41585840/article/details/104812620
今日推荐