黑马程序员技术交流社区

标题: 内存存储的问题! [打印本页]

作者: 鲸鱼先生.    时间: 2014-10-20 18:45
标题: 内存存储的问题!
本帖最后由 鲸鱼先生. 于 2014-10-20 21:02 编辑
  1. String str = "Hello";
  2.             int i = 0;
复制代码

这两个变量在内存中的存储位置有什么不同吗?
作者: 鲸鱼先生.    时间: 2014-10-20 20:15
是int i = 0;String都储存在栈区,而String有个地址指向储存在堆区的“Hello”吗?
作者: PinkDay    时间: 2014-10-20 20:38
声明的变量是存在栈区。
但是String是属于引用类型的,它声明的变量是存在堆区的,但是,变量里面存的不是值!是引用,也就是JVM(Java虚拟机)开辟的内存地址,并且这个地址里的值是不能被改变的!

你记住除了8个基本类型,再的都是引用类型~
基础类型:int,double,float,long,short,byte,char,boolean。这8个,他们的声明的变量以及存的值都在栈区里~

希望能帮助到你~
作者: wf111sxwf    时间: 2014-10-20 22:41
这个str 储存在字符串常量池中,int i的位置就要看它是成员变量还是局部变量了,成员的话就在堆中,局部的话在栈中




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2