zoukankan      html  css  js  c++  java
  • 简单了解下java中的堆、栈和方法区。

    堆、栈、方法区

    1,首先了解下java中的数据类型。

      ①java中的八大基本数据类型:boolean, char , byte, short, int, long , float , double.

      ②除了基本数据类型外还有引用数据类型:类,接口,数组。

      这些可以去了解,主要想记录下堆、栈和方法区的理解。

    2,java中的JVM内存可分为三个区:堆(heap)、堆栈(stack)、方法区(Method)。

      ①堆区

        ㈠,提供所有类的实例和数组对象存储区域

        ㈡,jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身

      ②栈区

        ㈠,每个线程包含一个栈区,栈中只保存基本数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中

        ㈡,每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。

      ③方法区

        ㈠,方法区又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。

        ㈡,方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。

        ㈢,运行时常量池都分配在 Java 虚拟机的方法区之中

    3,举个例子

    public void test(){
              Test t = new Test();
              int a = 1;
            }
    
            public class Test{
    
            }
    
    
    //t是Test对象的引用所以放在栈中,Test是自定义对象所以放在堆中.
    
    //a是基础数据类型所以在栈中.

    小结:给大家分享下,感觉挺能理解进去的,错误地方请谅解,来个大牛指导下。

  • 相关阅读:
    为什么Go没有三元运算符
    [Win10]鼠标没用,插入USB口电脑提示USB Optical Mouse找不到驱动程序的解决方案
    Office2016软件安装教程
    office2019软件安装教程
    Go语言 科学计算库 Gonum 学习1
    AI Studio 学习 Go 豆瓣电影爬取
    Git下载、安装与环境配置
    VueJS 数组哪些方法是响应式的
    VueJS v-for
    VueJS v-show
  • 原文地址:https://www.cnblogs.com/lxwt/p/7878945.html
Copyright © 2011-2022 走看看