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是基础数据类型所以在栈中.

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

  • 相关阅读:
    靶机练习
    靶机练习
    靶机练习
    CTF-攻防世界-Web_php_unserialize(PHP反序列化)
    漏洞复现
    靶机练习
    靶机练习
    靶机练习
    糗事集合
    慕课前端入门-JS事件
  • 原文地址:https://www.cnblogs.com/lxwt/p/7878945.html
Copyright © 2011-2022 走看看