java的内存分配:

java在运行时的内存结构分为:stack(栈内存),heap(堆内存),codesegment(方法区内存)。

1、stack(占内存)有局部变量,操作数,帧数据组成。

2、heap(堆内存)new创建的对象和数组。

3、codesegment(方法去内存)类的基本信息,类的详细信息。类的详细信息有有常量池,字段信息,方法信息,静态变量,classloader的引用和class的引用。

java 栈(stack)是java jvm决定程序如何执行,数据如何处理。局部变量区是一个以字节为单位的数组,每个数组元素对应一个局部变量的值,调用方法时,将方法的的局部变量组成一个数组,通过索引来访问,若方法为非静态的则加入指向这个方法对象的一个this,若方法为非静态的这没有这个this,因此对象没有办法访问静态的方法。操作数栈也是一个数组,但是通过栈操作来访问。帧数据区处理常量池解析,异常处理等。

java 堆(heap)是一个运行时的数据区,用来存储数据单元,存放通过New创建的的对象和数组

java codesegment(方法区)是对象分配的一个内存逻辑区,1,类的基本信息:包括:类的全名,该类的直接父类的全名,该类是接口还是普通类,类的访问修饰符。2,类的详细信息:常量池:在方法去中,每个类型都对应一个常量池,存放该类型所用到的所有常量,常量池中存储了诸如文字字符串、final变量值、类名和方法名常量。它们以数组形式通过索引被访问,是外部调用与类联系及类型对象的桥梁。

字段信息:字段信息存放类中声明的每一个字段的信息,包括字段的名、类型、修饰符。方法信息:类中声明的每一个方法的信息,包括方法名、返回值类型、参数类型、修饰符、异常、方法的字节码。

转载于:https://blog.51cto.com/ming311/1299111

java内存管理(适合初学者)相关推荐

  1. c语言和java哪个有前途_C语言和Java哪个更适合初学者?

    目前,无论是从应用范围还是流行程度来看,C语言和Java都是当下最为火热的编程语言.想要零基础入门编程的学习者在一开始的学习中都会碰到这样的难题:C语言和Java哪个更适合初学者?的确,编程语言的选择 ...

  2. java基础(一):谈谈java内存管理与垃圾回收机制

    看了很多java内存管理的文章或者博客,写的要么笼统,要么划分的不正确,且很多文章都千篇一律.例如部分地方将jvm笼统的分为堆.栈.程序计数器,这么分太过于笼统,无法清晰的阐述java的内存管理模型: ...

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

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

  4. Java内存管理-掌握虚拟机类加载机制(四)

    勿在流沙筑高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 上一篇介绍了整个JVM运行时的区域,以及简单对比了JDK7和JDK8中JVM运行时区域 ...

  5. Java内存管理:深入Java内存区域

    Java内存管理:深入Java内存区域 本文引用自:深入理解Java虚拟机的第2章内容 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 概述 ...

  6. [转载] Java内存管理-你真的理解Java中的数据类型吗(十)

    参考链接: Java中的字符串类String 1 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 推荐阅读 第一季 0.Java的线程安全.单例模式.JVM内存结构等知识 ...

  7. java中创建类的时候有没有分配内存,你必须了解的java内存管理机制(一)-内存分配...

    前言 在上一篇文章中,我们花了较大的篇幅去介绍了JVM的运行时数据区,并且重点介绍了栈区的结构及作用,相关内容请猛戳!在本文中,我们将主要介绍对象的创建过程及在堆中的分配方式.from 你必须了解的j ...

  8. java内存管理机制-转载保存有价值的东西

    JAVA 内存管理总结 1. java是如何管理内存的 Java的内存管理就是对象的分配和释放问题.(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 ( ...

  9. Java内存管理:Java内存区域 JVM运行时数据区

    Java内存管理:Java内存区域 JVM运行时数据区 在前面的一些文章了解到javac编译的大体过程.Class文件结构.以及JVM字节码指令. 下面我们详细了解Java内存区域:先说明JVM规范定 ...

最新文章

  1. 谈谈对Kafka Accumulator的理解
  2. python入门需要多久-目前Python学习需要多长时间?老男孩Python入门培训
  3. 如何快速学好Shell脚本?
  4. python 柱状图宽度设置_Python matplotlib 柱状图实例
  5. 如何删除wordpress侧边栏功能的wordpress.org链接
  6. 苹果笔记本电脑亮度无法调节_苹果MacBook AirM1评测:M1芯片给您不一样的体验
  7. MySQL学生人数统计小案例
  8. 面试准备每日五题:C++(二)——mallocnew、宏、volatile、constvolatile、(a)和(a)
  9. Atitit 项目的主体设计与结构文档 v3
  10. 数据权限设计研究-行数据权限
  11. 异地北京办理居住证详细材料
  12. 三星Z Fold2 5G评测:折叠屏手机的最强形态
  13. Activiti设置流程发起人用户信息
  14. 温州地图高清版全图完整版
  15. TechPowerUp GPU-z 软件参数释义
  16. linux如何配置php环境,linux如何配置php环境
  17. Python爬虫实战+数据分析+数据可视化(世纪佳缘)
  18. (zt)武林外传的经典台词系列2
  19. 具有现代设计和最新Bootstrap版本的数字市场HTML模板
  20. 前端HTML--个人社保计算器

热门文章

  1. Mysql权限控制-允许用户远程链接
  2. 技巧 | 如何使用R语言的基础绘图系统的拼图功能
  3. Python 字符串(一)
  4. R语言爬虫系列(1)XML抓取表格数据
  5. 三星内存编码_内存条上面的编码的含义
  6. 轴固定位置_全面总结:轴零件固定方式及特点
  7. 女生适合学python_Python适合女生学习吗?
  8. 电信业务分类目录2019_2019年7月国内增值电信业务许可情况分析报告:本期重点介绍内容分发网络业务...
  9. php不用框架怎么写,php框架不用写sql语句就能调用数据库里表的字段是怎么实现的...
  10. html radio 更换图片,html修改radio、checkbox样式