Java内存分析--栈--堆
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
参考视频
Java内存分析--栈--堆的更多相关文章
- [转载]JAVA内存分析——栈、堆、方法区 程序执行变化过程
面向对象的内存分析 参考:http://www.sxt.cn/Java_jQuery_in_action/object-oriented.html :尚学堂JAVA300集-064内存分析详解_栈_堆 ...
- 面试题:java内存中的堆区和数据结构中的堆有什么区别
java内存中的堆是一个 链表, 数据结构中的堆:就是一个栈
- Java内存分析简单介绍
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11904422.html Java内存分析简单介绍: 1. # 设置内存溢出时自动生成堆内存快照 ...
- 13 数组 Java内存分析 三种初始化
Java内存分析 三种初始化 静态初始化 //静态初始化 创建+赋值 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)}; 动态初始 ...
- java内存管理(堆、栈、方法区)
java内存管理 简介 首先我们要了解我们为什么要学习java虚拟机的内存管理,不是java的gc垃圾回收机制都帮我们释放了内存了吗?但是在写程序的过程中却也往往因为不懂内存管理而造成了一些不容易察觉 ...
- Java内存分配之堆、栈和常量池
Java内存分配主要包括以下几个区域: 1. 寄存器:我们在程序中无法控制 2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 3. 堆:存放用new产生的数据 4. 静 ...
- Java内存分配之堆、栈和常量池(转)
摘录自http://www.cnblogs.com/SaraMoring/p/5687466.html Java内存分配主要包括以下几个区域: 1. 寄存器:我们在程序中无法控制 2. 栈:存放基本类 ...
- java内存管理--栈、堆和常量池
今天有朋友问java中String[] str = s.split(",")的内存分析,于是开始查资料并测试.首先,发现在java的内存管理中"常量池"是个很奇 ...
- JAVA内存管理之堆内存和栈内存
我们常常做的是将Java内存区域简单的划分为两种:堆内存和栈内存.这种划分比较粗粒度,这种划分是着眼于我们最关注的.与对象内存分配密切相关的两类内存域.其中栈内存指的是虚拟机栈,堆内存指的是java堆 ...
随机推荐
- MPI集群搭建
高性能计算 ubantu下集群搭建 参考博客:https://blog.csdn.net/u012304016/article/details/52423738(尊重别人的知识产权),一些细节 ...
- 微信支付 V3 开发教程(一):初识 Senparc.Weixin.TenPayV3
前言 我在 9 年前发布了 Senparc.Weixin SDK 第一个开源版本,一直维护至今,如今 Stras 已经破 7K,这一路上得到了 .NET 社区的积极响应和支持,也受到了非常多的宝贵建议 ...
- 一个Django项目中实现的简单HTML页面布局
1 - 基础页面(被继承的模板) {% load static %} <!DOCTYPE html> <html lang="en"> <head&g ...
- GIT:创建、查看分支命令(git branch -vv)
在开发过程中一般会用到Git进行版本管理,创建查看分支并与远程仓库交互是非常常见的操作. branch分支 是指在开发主线中分离出来的,做进一步开发而不影响到原来的主线. Git存储的不是一系列的更改 ...
- FinallShell连接Centos虚拟机
1.虚拟机下输入ip addr查看网络状态,保证ens33下有ip 2.若没有IP的解决办法 方法一················· 1.输入 cd /etc/sysconfig/network-s ...
- djang2.1教育平台02
在次申明,之所以重做这个资料是因为原幕课教程漏洞太多,新手根本没有办法正常照些学习,我凭着老男孩python 课程基础,重做这个教程 ,更改版本为当前最新版本,为了方法以后的人学习,并不是照着原文照 ...
- 图论---最小生成树----普利姆(Prim)算法
普利姆(Prim)算法 1. 最小生成树(又名:最小权重生成树) 概念:将给出的所有点连接起来(即从一个点可到任意一个点),且连接路径之和最小的图叫最小生成树.最小生成树属于一种树形结构(树形结构是一 ...
- CodeForce-791B Bear and Friendship Condition(并查集)
Bear Limak examines a social network. Its main functionality is that two members can become friends ...
- php在类中使用回调函数 如array_map
<?php class foo { var $var; function bar() { array_map(array($this, "baz"), ar ...
- LINUX服务器带宽跑满、负载过高问题排查
1.centos 安装流量监控iftop apt-get install iftop -y 2.查看网卡名称 ifconfig 3.查看端口占用情况 iftop -i 网卡名称 -P 执行 nets ...