java虚拟机结构

java虚拟机结构

  1. 类加载器:负责从文件系统或网络中加载Class信息,加载到方法区的内存里面
  2. 方法区:存放类信息,常量信息,常量池信息,包括字符串字面量和数字常量
  3. java堆:虚拟机启动时建立java堆,是主要的内存工作区域,几乎所有对象实例存放到java堆中,堆空间是所有线程共享的
  4. 直接内存:javaNIO允许java使用直接内存,提高性能,性能优于java堆,读写频繁的场合下用
  5. 栈:每个虚拟机线程都有一个私有的栈,栈在线程创建时候创建,保存着局部变量,方法参数,java的方法调用,返回值等
  6. 本地方法栈:和java栈类似,通常用c编写的方法调用
  7. GC:垃圾回收器
  8. PC:寄存器
  9. 执行引擎:负责执行虚拟机字节码,先编译成机器码后执行

例子:

创建一个对象User

  • User的类信息,静态信息存储到方法区里面
  • User类实例化出来后,存储到java堆里面,一块内存空间
  • User user = new User(),当使用user时候,user.save(),这里的user存放在栈中,user对象的一个引用java堆里面的实例

你可能感兴趣的:(java)