jvm内存分配大致分为:

  栈:存储变量

  堆:存储对象(只要看到new就是开辟了内存空间,允许重复)

  常量池:顾名思义就是常量(例如字符串,数字。。。)

    特点:常量池中的数据是不存在重复的。

eg:

  String str1 = "Star";

  String str2 = new String("Star");

  String str3 = "star";

他们互不相等:

  str1直接指向了常量池中的内存地址。

  str2首先是指向了堆内存地址,然后堆内存地址指向了常量池中的内存地址。

  str3直接指向了常量池中的内存地址,但是因为常量池中不允许重复,java严格区分大小写,所以。。。

posted on 2018-08-12 21:34  zeronexyz  阅读(116)  评论(0编辑  收藏  举报