看了很多Java的模拟笔试题,几乎每套题里都有这么个选择题:Java参数是传值还是传引用。
每次遇到这个选择题我就很郁闷,因为我不明白何为“传值”,何为“传引用”,虽然我确实了解Java参数传递过程中发生了什么。这里我就不因个人的愚来钝混淆视听了,总之,不管是以后这种题以什么形式提出都好,理解Java参数传递过程才是王道。
先看primitive型数据的情况:
- public static void tripleValue(double x) //
- {
- x = 3 * x;
- }
- 。。。
- //call this method
- double percent = 10;
- tripleValue(percent);
- System.out.println("After: percent =" + percent ); // 10
当进入到tripleValue方法中时,x是percent的一个copy,因为percent是primitive的,因此它的copy也是primitive,也就是说x就是一个单纯的值,对这个“值”做操作不会影响方法外面的percent变量的,因此操作完成后percent依然是10。
看object型数据的情况:
- public static void tripleSalary(Employee x)
- {
- x.riseSalary(200);
- }
- 。。。
- Employee harry = new Employee(. . .);
- tripleSalary(harry);
- System.out.println("After: salary=" + harry.getSalary()); // works
执行这段代码时,当进入到tripleValue方法中后,x是harry的一个copy,harry是指向一个Employee对象实例的引用,因此x也是同样的一个引用。此时,通过x调用Employee对象实例的riseSalary方法,可以修改对象实例的salary值,又因为harry也指向同一对象,因此harry.getSalary()所得值也发生了变化。
但是,切记,x仅是harry的一个copy,在对x做任何操作之前,它们之间的唯一联系仅是指向同一对象,但如果在方法中我们改变了x的指向,那么这个变化是不会影响到harry的。
以上就是Java参数传递的过程。那个选择虽然现在也不明白,但是还是说一下通用的答案比较完整:
Java参数是传值嗒~
分享到:
相关推荐
"java中传值还是传引用的认识" Java 中的参数传递是值传递还是引用传递?这是一个经常引发讨论的问题。在 Java 中,参数传递是按值传递的,也就是说,传递给方法的参数是一个副本,而不是原始值本身。 当一个对象...
JAVA传值与传引用[整理].pdf
### Java是传值还是传址引用 #### 一、简单类型是按值传递的 Java在处理简单数据类型(如int、boolean等)时采用的是按值传递的方式。这意味着当你将一个简单类型的值作为参数传递给一个方法时,实际上传递的是这...
在Java编程语言中,函数调用时的参数传递方式有两种:传值(Passing by Value)和传引用(Passing by Reference)。虽然Java官方文档中并未明确指出有传引用这一概念,但在实际操作中,Java的行为类似于传引用,尤其...
根据标题和描述,我们将深入探讨Java中传值与引用的区别,以及它们在实际编程中的应用。 首先,Java是一种“总是按值传递”的语言。这意味着无论是基本类型还是引用类型,当作为参数传递时,都会有一个副本被创建并...
在计算机编程领域,特别是对于面向对象语言如Java而言,“传值”与“传引用”的概念是理解数据传递机制的关键所在。Java作为一种广泛使用的高级编程语言,在设计之初就考虑到了如何避免C/C++等语言中的复杂性,特别...
本篇文章将详细探讨引用类型的传值方式。 首先,理解引用类型的概念至关重要。引用类型包括类(classes)、接口(interfaces)、数组以及委托(delegates),它们在内存中的存储方式与值类型截然不同。对于引用类型...
许多人认为对象是按引用传递,而实际上,Java总是按值传递,包括对象。这里的“值”指的是对象的引用,而不是对象本身。这与C++或C#等其他语言中对象的传递方式有所不同。 首先,我们需要理解Java中的引用概念。当...
"Java中的传值与传引用实现过程解析" Java中的传值与传引用是Java编程语言中的一种基础概念,它们是Java函数中参数传递的两种方式。 Java中的传值是指函数参数的值被复制到函数内部,在函数内部对参数的修改不会...
理解Java中的传值与传引用对于编写正确且预期的行为代码至关重要。在编写函数时,应清楚地知道参数如何被传递,以及这将如何影响函数的可读性和行为。在实际编程中,合理运用这些知识能帮助避免许多常见的错误和困惑...
### Java及C++中传值传递、引用传递和指针方式的理解 在程序设计语言中,函数调用时参数的传递方式对理解程序的行为至关重要。本文将深入探讨Java与C++这两种广泛使用的编程语言中参数传递的方式,包括值传递、引用...
在Java编程语言中,方法参数传递机制涉及到两个主要概念:传值和传引用。了解这两个概念对于编写高效、可靠的代码至关重要。本篇文章将深入探讨Java中的方法传值和传引用问题。 首先,让我们理解什么是传值。在Java...
Java编程语言在处理参数传递时遵循一种特殊的方式,它既不是纯粹的按值传递,也不是纯粹的按引用传递。理解这一点对于深入学习Java至关重要。在Java中,基本数据类型(如int、float、char等)是按值传递的,而对象则...
- **通过JSP表达式语言(EL)**:使用EL表达式,如 `${javaVariable}`,可以直接在JavaScript代码中引用JavaBean或作用域内的变量。 2. **JavaScript到Java的传值**: - **表单提交**:通过JavaScript修改表单字段的...
传址和传引用是一回事。 一门编程语言的核心是数据结构,粗略来讲,可以把数据结构分成不可变类型(immutable)和可变类型(mutable)。为什么这么分呢?这涉及到内存分配问题。对于不可变类型,只要分配有限的内存...
第一次使用int实验: public class TTEST { private static List<UserEntity> mList = new LinkedList(); public static void main(String[] args) { int a = 0; changeA(a); System.out.println("a = "+a);...
### Java 类:传值还是传引用? 在Java编程语言中,理解变量的传递方式对于编写高效、可维护的代码至关重要。本文将通过一个具体的例子来深入探讨Java中的传值与传引用的区别,并解释如何利用这一特性来更好地管理...
总结起来,理解传值、传名(或传引用)和传地址的异同是编程基础的重要组成部分。它们影响着函数的可读性、效率以及程序的行为。在编写代码时,根据具体需求选择合适的参数传递方式,是提升代码质量的关键。