常量池的说明

常量池之前是放在方法区里面的,也就是在永久代里面的,从JDK7开始移到了堆里面。这一改变我们可以从oracle的release version的notes里的** Important RFEs Addressed in JDK 7 **看到。Area: HotSpot

Synopsis: In JDK 7, interned strings are no longer allocated in the permanent generation of the Java heap, but are instead allocated in the main part of the Java heap (known as the young and old generations), along with the other objects created by the application. This change will result in more data residing in the main Java heap, and less data in the permanent generation, and thus may require heap sizes to be adjusted. Most applications will see only relatively small differences in heap usage due to this change, but larger applications that load many classes or make heavy use of the String.intern() method will see more significant differences.

RFE: 6962931

String内存位置说明显式的String常量String a = "holten";

String b = "holten";第一句代码执行后就在常量池中创建了一个值为holten的String对象;

第二句执行时,因为常量池中存在holten所以就不再创建新的String对象了。

此时该字符串的引用在虚拟机栈里面。String对象String a = new String("holtenObj");

String b = new String("holtenObj");Class被加载时就在常量池中创建了一个值为holtenObj的String对象,第一句执行时会在堆里创建new String("holtenObj")对象;

第二句执行时,因为常量池中存在holtenObj所以就不再创建新的String对象了,直接在堆里创建new String("holtenObj")对象。

验证一下/**

* Created by holten.gao on 2016/8/16.

*/public class Main {    public static void main(String[] args){

String str1 = "高小天";

String str2 = "高小天";

System.out.println(str1==str2);//true

String str3 = new String("高大天");

String str4 = new String("高大天");

System.out.println(str3==str4);//false

}

}

返回结果:truefalse

java 变量分配_Java中成员变量分配在哪个空间?相关推荐

  1. java静态局部变量_java中成员变量,局部变量,静态变量的辨析

    转自百度:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc 1.java中成员变量,局部变量 ...

  2. java 实例变量是类的成员变量吗_JAVA中成员变量,局部变量,实例变量,类变量,有什么关系,,?...

    展开全部 java易混淆概念之类变量32313133353236313431303231363533e4b893e5b19e31333365643662.实例变量.局部变量 类变量.实例变量.局部变量 ...

  3. java中的成员变量和局部变量的区别_java中成员变量与局部变量区别分析

    本文实例分析了java中成员变量与局部变量区别.分享给大家供大家参考.具体分析如下: 成员变量:在这个类里定义的私有变量,属于这个类. 创建以及使用成员变量 public class Person { ...

  4. java实例成员和类成员变量_Java 中成员变量又分为 和类成员变量。_学小易找答案...

    [简答题]I'm not quite so poetic, but I do know that the subway is as essential to the character of New ...

  5. java中成员变量的加载时机_工作奇谈——JAVA高级特性之反射

    一.从问题入手 最近又要面试新人,所以翻了翻以前的代码,突然发现了一个有意思的问题. 问:如下一个Student类,请实例Student并对其成员变量赋值. public class Student ...

  6. java程序中的变量_Java中的变量

    实例变量的作用域与对应实例的生存范围相同,而类属性的作用域与这个类的生存范围相同.成员变量无须显式初始化,系统会默认初始化. 与成员变量不同的是,局部变量除了形参之外,不必须显式初始化,否则不可以访问 ...

  7. JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例...

    JAVA之旅(八)--多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例 一.多态 我们今天又要学习一个新的概念了,就是多态,它是面向对象的第三个特征,何谓多态 ...

  8. java面试题2 牛客:定义类中成员变量时不可能用到的修饰是

    懵逼树上懵逼果,懵逼树下你和我 第二题 定义类中成员变量时不可能用到的修饰是() A final B void C protected D static 一看到这道题,有点慌了,直接选c,很显然,我又 ...

  9. 谈谈java中成员变量与成员方法继承的问题

    谈谈java中成员变量与成员方法继承的问题 关于成员变量和成员方法的的继承问题,我也可以做一个小测试,来看看结果. 首先我们先创建一个父类: 其次再创建一个子类,子类中要比父类中少一个成员方法: 这样 ...

最新文章

  1. C语言两种查找方式(分块查找,二分法)
  2. 如何禁止使用本地administrator进行共享连接
  3. 【迁移学习(Transfer L)全面指南】迁移学习中的bottlenecks(瓶颈层)
  4. php和python和java-Java、Python与PHP的虚拟机异同
  5. EEPROM存储器--AT24CXX
  6. 称重管理系统如何修改重量_微嵌智能称重方案实现自动零件计数秤
  7. C#数据本地存储方案之SQLite
  8. BERT、MT-DNN、GPT2.0、ERNIE
  9. matplotlib 的一些知识
  10. 【BZOJ4407】于神之怒加强版
  11. nginx 重启和配置include的位置
  12. C#LeetCode刷题之#709-转换成小写字母(To Lower Case)
  13. JDK Dynamic Proxy_JDK动态代理
  14. 关于 WebRequest.RegisterPrefix
  15. python常用库大全文库_Python库参考手册
  16. html 图片导出excel,html静态表格导出到excel
  17. [Python] 调用接口自动翻译单词,并存入文件
  18. Eason Chan
  19. Android win10 平板 省电,手把手还原win10系统Mobile设置更省电的操作教程
  20. php json数据条数,PHP中的JSON数据

热门文章

  1. Git常用命令总结(超实用)
  2. 动静结合学内核:linux idle进程和init进程浅析
  3. 以源码编译的方式安装PHP与php-fpm
  4. SPOJ problem 42: Adding Reversed Numbers
  5. [一文一命令]less命令详解
  6. 利用增强限制条件来求解问题
  7. Linux系统调用--getrlimit()与setrlimit()函数详解【转】
  8. BZOJ 2197 [Usaco2011 Mar]Tree Decoration
  9. linux dmesg 格式化时间
  10. quagga 简介 开源路由软件