逆行者_168 2017-10-18 06:19 采纳率: 0%
浏览 2139

java中堆、栈和方法区的理解

百度上的答案太多,说的都比较抽象,请假大神们给我举例说明下
我自己的理解:
堆:存放对象、数组
栈:存放基础数据类型的对象和自定义对象的引用(不是对象)
方法区:存放class文件、常量、静态变量

  • 写回答

4条回答 默认 最新

  • longlong3207 2017-10-18 07:40
    关注
     AppMain.java
    
     public   class  AppMain                
    
    //运行时, jvm 把appmain的信息都放入方法区
    
    {
    
    public   static   void  main(String[] args)  //main 方法本身放入方法区。
    
    {
    
    Sample test1 = new  Sample( " 测试1 " );   //test1是引用,所以放到栈区里, Sample是自定义对象应该放到堆里面
    
    Sample test2 = new  Sample( " 测试2 " );
    
    test1.printName();
    
    test2.printName();
    
    }
    
    } 
    Sample.java
    
     public   class  Sample        //运行时, jvm 把appmain的信息都放入方法区
    
    {
    
    /** 范例名称 */
    
    private  name;      //new Sample实例后, name 引用放入栈区里,  name 对象放入堆里
    
    /** 构造方法 */
    
    public  Sample(String name)
    
    {
    
    this .name = name;
    
    }
    
    /** 输出 */
    
    public   void  printName()   //print方法本身放入 方法区里。
    
    {
    
    System.out.println(name);
    
    }
    
    } 
    
    

    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算