关于Java的值传递机制

最近学的知识杂而乱,每天看着《Thinking in java》,可以把基础打的更扎实,同时也看着尚硅谷的Java视频教程,双管齐下。这是我第一次在简书上写东西,记录自己学到的东西,我觉得很好。今天在课上,实在过于无聊,便在牛客app上刷Java基础题,有一道题吸引了我的注意!直接贴图

图片发自简书App


图片发自简书App

这是一道来自于阿里巴巴的面试题,考察的知识点在于Java的值传递与引用传递机制。大家仔细阅读一下代码,可能有人会选择B,包括我刚开始也毫不犹豫的选择了第二个选项,还在纸上画了内存图。

图片发自简书App

这道题不是说有多难,可是我还是做错了,而且前几天看视频时讲Java的值传递机制就是用这道题当例题讲解的,我得好好反思自己了。当second()方法执行完时,里面的局部变量应该释放了,被jvm的垃圾收集器回收了,所以再回到first()方法里,输出的v.i的v应该是first()方法区中的v对象,它指向的i还是等于20,所以最后的结果为15,0,20。如果大家还有不明白的,直接看牛客这道题评论区里大神画的内存图吧!

图片发自简书App

2018.11.8。  22:10

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 156,112评论 24 682
  • 时尚圈瞬息万变,真是永远也想不到下一轮流行的会是什么奇怪招数。这不前阵子流行不好好穿衣,现在出来的明星们都开始赶时...
    任性猫平台阅读 231评论 0 0
  • 在这样的一个下午,感觉自己的心很平静。坐在电脑前安静地写字,平淡地告白那些琐琐碎碎。现在习惯了每天给自己点时间述说...
    百度老杨阅读 37评论 0 0
  • 我遇到过好人 所以我知道 这个世界有多么美好! 我遇到过坏...
    大小俩珍珠阅读 164评论 4 1
  • 如今,早已忘记第一次听到brainstorm或头脑风暴是在什么时候了,也许是某堂英语课上,也许是毕业季的某...
    冷静知言阅读 620评论 0 1