初学者一个java的简单概念问题?

Randomrand=newRandom()这句话应该怎么理解?new是开辟一个空间它怎么知道rand占多大的内存呢?在使用rand.nextInt(10)的时候返回的随... Random rand=new Random()这句话应该怎么理解?new是开辟一个空间 它怎么知道rand占多大的内存呢?在使用rand.nextInt(10)的时候返回的随机值存在哪里?是存在rand里面吗?还是就是存在这个方法中? 展开
 我来答
leafairsky
2012-07-29 · 超过10用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:26.8万
展开全部
new 是在堆内存开辟空间,JVM自然知道需要多大内存。
int i = rand.nextInt(10);
那么返回的值就存在i对应的栈内存中,如果没有变量来接收返回值,应该进内存前就被丢弃吧,这个还真不了解。
渊之蓝
2012-07-29 · TA获得超过734个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:156万
展开全部
第一个问题跟你说也没用。感兴趣的话推荐研究《深入Java虚拟机》
第二个问题,方法调用是有返回值的。需要 int a = rand.nextInt(10); 这种方式。否则返回的值将没有引用,会被GC销毁。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
______霸道女王
2012-07-29
知道答主
回答量:28
采纳率:0%
帮助的人:16.8万
展开全部
朋友你好、
当new创建 一个对象的时候,会在堆区中开辟一块内存空间。Random rand=new Random();中rand存放的是对象的引用,引用rand放在了栈区中。这个时候它的内存空间是不确定的,当使用
rand.nextInt(10);的时候就确定了它的内存空间了。就是一个int类型从0~9的一个随机数(一个int数值,4个字节)的内存空间。 并不是存放在rand中了。rand只是存放你创建的Random这个实体对象的引用在栈区中。可以这样来理解:int temp=rand.nextInt(10);这样就把获取的随机数放到了以temp为引用的栈区空间中,因为它是引用数据类型,所以在栈区开辟空间。并不是存放在这个方法中。方法并不是内存空间,而是给程序员在需要的时候用来调用的……
希望可以帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式