java静态类堆栈_Java回归学习-面向对象内存分析-堆栈
学习是对内存模型不太熟悉,总是分不清到底谁在堆,谁在栈,现在可算是明白了!
栈的特点如下栈描述的是方法执行的内存模型。每个方法被调用都会创建一个一个栈帧(存储局部变量、操作数、方法出口等)
JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)
栈属于线程私有, 不能实现线程间的共享!
栈的存储特性是 “先进后出,后进先出”
栈是由系统自动分配,速度快!栈是一个连续的内存空间
堆的特性如下堆用于存储创建好的对象和数组(数组也是对象)
JVM只有一个堆,被所有线程共享
堆是一个不连续的内存空间,分配灵活,速度慢
方法区(又叫静态区)特点如下JVM只有一个方法区,被所有线程共享
方法区实际也是堆,只是用于存储类、常量相关的信息!
用来存放程序中永远不变的唯一的内容。(类信息【Class对象】、静态变量、字符串常量等)
============================Java内存模型示意图==============================
|-----------------| |-----------------------------------------|
| 栈 | | 堆 ---------------- |
|-----------------| | 15db839 | 方法区 | |
| main方法的栈帧 | | ------------- | 代码 | |
| stu = 15db839------------->| id:10001 | | 静态变量 | |
| c1 = 15db4343-------- | | age:18 | | 静态方法 | |
| | | | | name:----|--| | 字符串常量 | |
| | | | | study() | |--> " 我在学习" | |
| | | | | paly() | | | |
| | | | |-----------| |--> "我在玩游戏" | |
| | | | 15db4343 | | | | |
| | | | |-----------| | | | |
| | |----->| | | | | |
| | | | brand:------| | | |
| | | | | | | |
| | | |-----------| |--------------| |
|-----------------| |-----------------------------------------|
============================================================================
java静态类堆栈_Java回归学习-面向对象内存分析-堆栈相关推荐
- Java(二)——简单的理解下面向对象内存分析
学习进入到面向对象初级阶段,看到代码的执行过程便很蒙圈.后来经同学指点告诉我说让我看看面向对象的内存分析,会对代码的理解有所帮助,这里就针对面向对象的内存分析进行阐述.(有些图和代码可能借助于网络和其 ...
- java 基本类型内存_java基本数据类型、内存分析、装包拆包
2019-09-13 18:01:23 idea快捷键: file->settings->Keymap->搜索关键字 Increase Font Size 增大字体 c ...
- java定义构造方法_JAVA基础学习之路(三)类定义及构造方法
类的定义及使用 一,类的定义 classBook {//定义一个类intprice;//定义一个属性intnum;public static int getMonney(int price, intn ...
- java 线程起名字_java多线程学习三::::为什么要给线程起名字并且知道守护作用?...
为什么要会线程起名字呢? 你如果拿到一连串的Thread-01,Thead-02我想你应该会疯掉,看以下代码 package rs.thread.day0504; /** * @auther rs * ...
- java新人培训_Java新人学习必要的步骤以及全套学习路线!
原标题:Java新人学习必要的步骤以及全套学习路线! 想学Java,刚开始有没有觉得无从下手呢?其实Java的基础知识点,并不多,但是一定要吃透,因为这是为后续核心的学习打下一个良好的基础.简单来说, ...
- 狂神说JAVA 数组、三种初始化和内存分析
声明数组变量 dataType[] arrayRefVar; // 首选的方法或 dataType arrayRefVar[]; // 效果相同,但不是首选方法 dataType[] arrayRef ...
- Java性能调优工具:MAT内存分析工具,上万字带你彻底了解
MAT内存分析工具 MAT是MemoryAnalyzerTool的简称,它是一款功能强大的Java堆内存分析器,可以用于查找内存泄漏以及查看内存消耗情况.MAT是 基于Eclipse开发的一款免费的性 ...
- java 方法泛型_Java基础学习,什么是泛型概念,使用泛型有哪些好处?
一般的类和方法,只能使用具体的类型,要么是基础数据类型,要么是自定义类. 如果要编写可以应用与多种类型的代码,这种刻板的限制对代码的束缚就会很大. 泛型的字面概念: 适合用于许多类型. 在面向对象中, ...
- java 静态类 静态方法_JAVA的静态变量、静态方法、静态类
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象 ...
- java中二叉树_java后端学习路线
"学习真的是一个循序渐进的过程,也是一件需要坚持的事情.对于这篇文章,不同阶段的人可能有不同的理解,所以我把我整理的比较全面的java学习路线分享给大家,以供参考.下面的这个学习路线主要针对 ...
最新文章
- 改造我们的学习:有钱不会花,抱着金库抓瞎
- 交互,真的没有你想象的那么重要
- 如何用笔记本建立wifi热点
- boost::fusion::reverse用法的测试程序
- 【GIS风暴】ArcGIS栅格重采样(Resample)方法详解
- layui弹出层html,layui-弹出层
- 将PPT内容导出为JPG图片
- Shell in AIX Web端 自动远程执行重启tomcat服务命令
- Soft-Masked BERT:文本纠错与BERT的最新结合
- JavaScript:typeof的用法以及undefined和null的区别
- Lucene 文档检索 详细说明
- ipmitool介绍_ipmitool管理工具
- CAD工具——导出JPG
- 给想去阿里面试的同学一些意见
- android 跑马灯出现重复跳动、不滚动问题
- 关于RedisInsight 创建数据库时 connection time out 连接超时的问题
- aardio - 小窍门及注意事项收集贴
- iphone6+总显示无服务器,iphone6一直显示无服务为什么啊
- 小灰整理了一套Java学习路线图,面试和实战都能用得上!
- bpsk matlab,基于MATLAB的BPSK信号仿真分析
热门文章
- java中面向对象6_Java面向对象
- Javascript特效:音乐导航
- CSS:position属性和z_index
- 使用内存文件映射MappedByteBuffer读超大文件可能会遇到的问题
- 设计模式(9)——模板方法模式
- 理解Towards Understanding Ensemble, Knowledge Distillation and Self-Distillation in Deep Learning
- OWOD:开放世界目标检测,更贴近现实的检测场景 | CVPR 2021 Oral
- 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
- 第 3 讲 三维空间刚体运动
- C#6.0VISUALSTUDIO 2015 C#入门经典 第7版pdf