Java内存分析--栈--堆
JVM的内存分析:
1.栈内存
1.连续的存储空间,遵循后进先出的原则。
2.每个线程包含一个栈区,栈区只保存基础数据类型的对象和自定义对象的引用。
3.每个栈中的数据都是私有的,其他栈不能访问
4.栈空间较小,用完立刻清理
2.堆内存
1.不连续的空间,用于存放new出的对象,或者说是类的实例。
2.。JVM只有一个堆区被所有线程共享
3.空间较大。垃圾回收器回收垃圾
3.方法区
方法区在堆空间内,用于存放:
1.类内代码信息;
2.静态变量和方法;
3.常量池(显式的String常量和基本类型常量(float、int等),可以存储不经常改变的东西(public static final)。常量池中的数据可以共享)。
class TestVar{
//成员变量
int a;//整数类型
char b;//字符类型
boolean c;//布尔类型
double d;//浮点类型
String e;//引用类型
public void show(){
System.out.println("====成员变量====");
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println("====局部变量====");
int aa=123;
System.out.println(aa);
}
public void test(){
inta=123;//就近原则
System.out.println(a);
}
public static void main(String [] args){
//创建对象
TestVar var=new TestVar();
//var.show();
var.test();
}
}
参照博客:
https://blog.csdn.net/qq_36743482/article/details/78527312?ops_request_misc=%7B%22request%5Fid%22%3A%22163350651216780262511576%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=163350651216780262511576&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-78527312.first_rank_v2_pc_rank_v29&utm_term=java%E5%86%85%E5%AD%98%E5%88%86%E6%9E%90&spm=1018.2226.3001.4187
或
https://blog.csdn.net/weixin_41231928/article/details/101055831?ops_request_misc=%7B%22request%5Fid%22%3A%22163350651216780262511576%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=163350651216780262511576&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-4-101055831.first_rank_v2_pc_rank_v29&utm_term=java%E5%86%85%E5%AD%98%E5%88%86%E6%9E%90&spm=1018.2226.3001.4187