为了账号安全,请及时绑定邮箱和手机立即绑定

正在回答

2 回答

在java的逻辑内存中分栈内存和堆内存。其中像是int,short,long,char,double等基本数据类型所需要的空间是固定的,在运算时数据是存储在栈内存中。而对于一个引用类型的变量,如String,或者一个对象,系统并不知道它们所占的空间具体值。在创建时,首先为了保证系统能够找到它,先在栈内存中存一个标识和基本空间(如创建person类的man对象: “person man”的意思就是在栈内存中创建man的空间 ,接下来通过new关键字在堆内存中创建一块空间,在将地址值返回给栈内存中)。对于一次性使用的对象可以直接用”new 类名()”的形式创建一个匿名对象(如匿名person对象调用talk方法:new person.talk()),因为系统无法再次找到它,所以在执行一次后将会被java虚拟机当做垃圾进行回收。在执行如运算符"=="的过程中其实都是直接在栈中就行操作,从而比较的其实是指向的地址,而不是内容。

0 回复 有任何疑惑可以回复我~
#1

yuhq 提问者

非常感谢!
2016-08-11 回复 有任何疑惑可以回复我~

引用值是在程序设计中,对于函数调用的一种方法,把值传递到新的变量,修改新的变量,不会修改原来的参数

0 回复 有任何疑惑可以回复我~
#1

隔壁诸葛村夫

引用类型变量存的是保存数据的空间地址,相当于指针传递,传递后其值就改变了
2016-08-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530635    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

什么是引用值

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信