常量池的理解

已有 48 次阅读2017-5-31 16:39 |个人分类:知识点总结|系统分类:学习纪录

常量池:储存常量的容器
编译器:源码--字节码,常量池中对象的诞生是在编译期时创建
运行期:真正代码执行,堆栈模型的诞生是在运行期
如:String a ="abs";
String b=new String ("abc");
String c=new String("c");
解析:当在编译期时    a 现在常量池中查询有无abc常量,如果没有就创建,
b在编译期发现常量池中有abc,无需创建
c在编译期发现常量池中无c,直接创建c常量
         在运行期时:     a先在栈模型中创建a链接,然后指向常量池中的abc
b先在栈模型中创建b链接,复制常量池中的abc粘贴在堆模型中(创建一个容器放abc)
c先在栈模型中创建c链接,复制常量池中的c粘贴在堆模型中(创建一个容器放c)

String a="abc";
String b="a"+"bc";
String a是否与String b相等   
相等  因为在编译期时,String b就把'"a"+"bc"变成了“abc"



路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright;  ©2015-2017  知了堂学习社区  Powered by  知了堂Edu!     ( 蜀ICP备16011312号-1 )