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

参考视频

https://www.bilibili.com/video/BV13b411w78u?from=search&seid=15410949425144710708&spm_id_from=333.337.0.0

Java内存分析--栈--堆的更多相关文章

  1. [转载]JAVA内存分析——栈、堆、方法区 程序执行变化过程

    面向对象的内存分析 参考:http://www.sxt.cn/Java_jQuery_in_action/object-oriented.html :尚学堂JAVA300集-064内存分析详解_栈_堆 ...

  2. 面试题:java内存中的堆区和数据结构中的堆有什么区别

    java内存中的堆是一个  链表, 数据结构中的堆:就是一个栈

  3. Java内存分析简单介绍

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11904422.html Java内存分析简单介绍: 1. # 设置内存溢出时自动生成堆内存快照 ...

  4. 13 数组 Java内存分析 三种初始化

    Java内存分析 三种初始化 静态初始化 //静态初始化 创建+赋值 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)}; 动态初始 ...

  5. java内存管理(堆、栈、方法区)

    java内存管理 简介 首先我们要了解我们为什么要学习java虚拟机的内存管理,不是java的gc垃圾回收机制都帮我们释放了内存了吗?但是在写程序的过程中却也往往因为不懂内存管理而造成了一些不容易察觉 ...

  6. Java内存分配之堆、栈和常量池

    Java内存分配主要包括以下几个区域: 1. 寄存器:我们在程序中无法控制 2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 3. 堆:存放用new产生的数据 4. 静 ...

  7. Java内存分配之堆、栈和常量池(转)

    摘录自http://www.cnblogs.com/SaraMoring/p/5687466.html Java内存分配主要包括以下几个区域: 1. 寄存器:我们在程序中无法控制 2. 栈:存放基本类 ...

  8. java内存管理--栈、堆和常量池

    今天有朋友问java中String[] str = s.split(",")的内存分析,于是开始查资料并测试.首先,发现在java的内存管理中"常量池"是个很奇 ...

  9. JAVA内存管理之堆内存和栈内存

    我们常常做的是将Java内存区域简单的划分为两种:堆内存和栈内存.这种划分比较粗粒度,这种划分是着眼于我们最关注的.与对象内存分配密切相关的两类内存域.其中栈内存指的是虚拟机栈,堆内存指的是java堆 ...

随机推荐

  1. MySQL——日志管理

    一.MySQL日志类型 1.错误:--log--error ---------------------*** host_name.err 2.常规: --general_log host_name.l ...

  2. PyQt5 笔记

    一.简介 pyqt5做为Python的一个模块,它有620多个类和6000个函数和方法.这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIX,Windows,Mac OS.pyqt5是 ...

  3. 初识GDAL

    1.GDAL简介 GDAL(Geospatial Data Abstraction Library)是一个用于栅格数据操作的库,是开源地理空间基金会(Open Source Geospatial Fo ...

  4. 20210716考试-NOIP16

    考场时Prim的 $i$ 写成 $k$ 100->0 rank1->rank23 T1 Star Way To Heaven 考场正解:假设你要二分答案,则几个圆组成几道"屏障& ...

  5. C# Equals方法和==有什么区别

    开发工具:VS2019 一.关于这两个比较,需要从值类型和引用类型两方面来说 (A)先说值类型 上图: 因为在对值类型进行比较时候,不管 .Equals() 方法还是 == 方法,都是对值类型变量(图 ...

  6. Toast控件

    ------------恢复内容开始------------ 四种常见的App弹窗设计:Toast.Dialog.Actionbar 和 Snackbar 弹窗又称为对话框,是App与用户进行交互的常 ...

  7. appnium显式等待机制

    强制等待: sleep不推荐全局隐式等待 全局隐式等待: 在服务端等待 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); ...

  8. oracle table()函数

    PL/SQL表---table()函数用法/* PL/SQL表---table()函数用法:利用table()函数,我们可以将PL/SQL返回的结果集代替table. oracle内存表在查询和报表的 ...

  9. webgl 图像处理 加速计算

    webgl 图像处理 webgl 不仅仅可以用来进行图形可视化, 它还能进行图像处理 图像处理1---数据传输 webgl 进行图形处理的第一步: 传输数据到 GPU 下图为传输点数据到 GPU 并进 ...

  10. C#委托与事件实用场景

    首先,我们需要知道,到底在什么情况下必须使用委托和事件呢? 请看下面的场景:首领A要搞一场鸿门宴,吩咐部下B和C各自带队埋伏在屏风两侧,约定以杯为令:若左手举杯,则B带队杀出:若右手举杯,则C带队杀出 ...