比如我有我阿姨家的地址我就可以根据地址走过去然后看门牌号和我手上的地址是不是吻合
那么java虚拟机有了地址后是怎么利用地址找到对应的内存空间的?
我的猜测是:虚拟机遍历内存里所有的内存地址直到读到和虚拟机手上的地址一样时才指向那个内存空间
é个éåç代价æ¯å¾é«çï¼ä¸ç¥éä½ å¯¹æä½ç³»ç»çåçæå¤å°ç 究ã
æç¹ç±»ä¼¼ä½ 说çï¼åªä¸è¿ä½ æè¿ä¸ªæ¢æä¸æ¬ä¹¦å°±å¥½ï¼ä½ æ³ç¥éæ个ï¼å 容åå»çç®å½ï¼å æ¾å¤§ç« èï¼åæ¾å°ç« èï¼ä¸å±ä¸å±æ¾ä¸å»ï¼ç¥éæ¾å°ä½ è¦çä¿¡æ¯ã
æç¹ç±»ä¼¼ä½ 说çï¼åªä¸è¿ä½ æè¿ä¸ªæ¢æä¸æ¬ä¹¦å°±å¥½ï¼ä½ æ³ç¥éæ个ï¼å 容åå»çç®å½ï¼å æ¾å¤§ç« èï¼åæ¾å°ç« èï¼ä¸å±ä¸å±æ¾ä¸å»ï¼ç¥éæ¾å°ä½ è¦çä¿¡æ¯ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-12-03
既然是讨论,我就觉得你的猜测是错误的,不可能去遍历内存里所有的内存地址的,很简单这样慢,不是一个优秀语言的设计思想。JAVA当中 A a = new A()产生一个对象的时候,就已经在内存当中分配了空间,和地址,既然已经有了地址我为什么还要遍历内存里的所有内容来匹配呢?我为什么不能直接找到这个地址呢?