天天看点

Java中值传递和引用传递问题

目录

  • 1. 形参与实参
  • 2. Java的数据类型
  • 3.JVM内存的划分及职能
    • 1. 虚拟机栈
    • 2. 堆
    • 3. 程序计数器
    • 4. 方法区
    • 5. 本地方法栈
  • 4. 数据如何在内存中存储?
    • A.基本数据类型的局部变量
    • B. 基本数据类型的成员变量
    • C. 基本数据类型的静态变量
  • 6. 值传递和引用传递
  • 结语

学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java只有值传递,有的博客说两者皆有;这让人有点摸不着头脑,下面我们就这个话题做一些探讨,对书籍、对论坛博客的说法,做一次考证,以得出信得过的答案。

其实,对于值传递和引用传递的语法和运用,百度一下,就能出来可观的解释和例子数目,或许你看一下例子好像就懂,但是当你参加面试,做一道这个知识点的笔试题时感觉自己会,胸有成熟的写了答案,却发现是错的,或者是你根本不会做。

是什么原因?

那是因为你对知识点没有了解透彻,只知道其皮毛。要熟读一个语法很简单,要理解一行代码也不难,但是能把学过的知识融会贯通,串联起来理解,那就是非常难了,在此,关于值传递和引用传递,小编会从以前学过的基础知识开始,从内存模型开始,一步步的引出值传递和引用传递的本质原理,故篇幅较长,知识点较多,望读者多有包涵。

......

......

在全面理解值传递和引用的基础上,巩固练习:

1.《Java值传递以及引用的传递、数组的传递!!》

最后一题的图解(有点丑,凑合看)

Java中值传递和引用传递问题

2.《一道题目来分析Java中的值传递和引用的传递》

如果以上几题测试都正确,那么恭喜你,基本掌握了值传递和引用的关系~