比如 int a=3;
a作为3的引用,存在于栈中,而3也存在栈中。对于java基本数据类型,对象和引用都会被保存在栈里面。
再举个例子String str=new String(“abc”);众所周知,一共创建了两个对象,str作为引用,保存在栈里面。new String(“abc”),可以看做是 “abc” 和new String(); new String()创建了一个对象,保存在堆中。“abc”创建了一个对象,保存在字符串常量池中。
你可以看看这张图,关于String类的内存分配是很有趣的,而且需要记住的是String类是final修饰的。 final修饰的方法不能被重写,final修饰的类不能被继承。
如果哪里说错了各位可以指出来一起交流,谢谢!
java对象的引用存放在栈中,对象的本身是存在堆中的
对象储存在堆里 引用储存在栈里
谁他妈告诉你的?