Java基础01-JVM内存分析

Posted 深海溺心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础01-JVM内存分析相关的知识,希望对你有一定的参考价值。

JVM java虚拟机

java编译后的class文件就是在java虚拟机上运行的

1.栈区(stacksegment)存放函数的参数值,局部变量的值等,在超过这个变量的作用域时就会被系统自动释放掉存在于JVM内存中的资源

优点:存取速度比堆快

缺点:存在栈中的数据大小与生存期必须是确定的,无灵活性

总结:基础类型存放在栈内存

for(int i=0;i<43;i++){  //i是局部变量,在for循环中可以用
  System.out.println(i);
}
System.out.println(i);//超过变量的作用域,已被系统释放掉,此时调用就会报错

int

string

double

float

char

2.堆区(heapsegment)存放由new创建的对象和数组,JVM不定时查看这个对象,如果没有引用指向这个对象就收回

引用类型:使用new来创建对象  java中除基础类型外,其余都是引用类型

引用的变量在栈内存,创建的对象在堆内存,访问创建的对象要先访问引用类型,然后在通过引用类型指向它

Scanner in=new Scanner(System.in);//声明

in.nextInt();//访问

优点:可以动态分配JVM内存

缺点:要在运行时分配JVM内存   速度慢

 

3.静态区

4.代码区

 

以上是关于Java基础01-JVM内存分析的主要内容,如果未能解决你的问题,请参考以下文章

Java面试01|JVM相关

大数据必学Java基础(三十四):面向对象内存分析

java内存流:java.io.ByteArrayInputStreamjava.io.ByteArrayOutputStreamjava.io.CharArrayReaderjava.io(代码片段

JAVA基础面向对象分析

java基础学习之内存分析(栈堆方法区)

01-Jvm 内存区域复习笔记