JAVA-基础语法-类与对象-1

举报
Photon2 发表于 2020/12/25 13:44:48 2020/12/25
【摘要】 JAVA-基础语法-类与对象-1

1:存储的全部都是对象,每个对象都包含一个与之对应的class的信息(class的目的是得到操作指令)

2:JVM只有一个堆区被所有线程共享,堆中不放基本类型和对象引用,只存放对象本身

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

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

3:栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)

方法区

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

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


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();
  }
}


public class Sample        //运行时, jvm 把Sample的信息都放入方法区
{
   /**
    * 范例名称
    */
   private String name;      //new Sample实例后, name 引用放入栈区里, name 对象放入堆里

   /**
    * 构造方法
    */
   public Sample(String name) {
       this.name = name;
  }

   /**
    * 输出
    */
   public void printName()   //print方法本身放入 方法区里。
  {
       System.out.println(name);
  }
}

img


img

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。