`

Java入门总结------参数传递:值传递与引用传递

阅读更多

参数传递:值传递与引用传递

1.值传递:所有基本数据类型:byte short int long float double boolean char 加上String类型
下面,定义2个方法,作用显而易见:给参数t赋值以及让参数++
public static void change(int t){
		t = 1000;
	}
	public static int add(int t){
		t++;
		return t;
	}

再来执行如下代码
int a=10,b=5;
		//调用change方法改变a的值
		change(a);
		System.out.println(a);

结果a=?是1000吗?
结果如下图

原因是,所有基本数据类型的参数传递都是值传递,也就是说change方法执行的是:10=1000这行代码,这显然是无意义的,也就是说,参数t的改变并不影响a的值
再来执行下面这段代码
int a=10,b=5;
		//调用change方法改变a的值
		change(a);
		a=b;
		a=add(a);
		System.out.println("a="+a+"   "+"b="+b);

a和b的值有分别是多少?
结果如下

也就是说,把b的值赋给了a之后,a的值改变了,但是对b也是没有影响的
2.引用传递:所有的对象类型(类,接口,抽象类,数组)
引用传递又可以叫做地址传递。
看一下下面的代码
//创建学生对象
		Student student1=new Student();
		//调用方法设置名字
		student1.setName("比尔盖子");
		//再创建一个学生对象
		Student student2=new Student();
		//调用方法设置名字
		student2.setName("乔布斯");
		Student student3=new Student();
		student3.setName("小明");
		student1 = student3;
		student1.setName("改变student1名字");
                System.out.println("student3的名字是:"+student3.getName());

这里将student3的值赋给了student1,然后改变student1的名字,但输出的是student3的名字
结果

很显然,student3的名字也被改变了,为什么?
因为,对象类型的变量存储的是对象在内存中的首地址。当一个对象类型的变量的值改变时,意味着它能访问到的堆内存空的首地址也将改变,上示代码中,student3赋值给了student1,以为这student1也将保存student3的地址,因为他们访问的将是同一个地址,因而一个该了地址中的内容,下一个访问时也将是已经改变了的内容。这就是引用传递。
  • 大小: 4.6 KB
  • 大小: 5.5 KB
  • 大小: 6.4 KB
分享到:
评论

相关推荐

    java的入门指南------

    这些只是Java入门学习的一些基础概念,随着对Java的深入学习,还会涉及更多高级主题,如设计模式、Spring框架、数据库连接、网络编程等。对于初学者来说,掌握这些基本概念并实践编写简单的Java程序是至关重要的。

    《Java基础入门》-课后习题答案--1-6.doc

    ### Java基础入门知识点详解 #### 第1章 Java 开发入门 **一、填空题解析** 1. **Java EE、Java SE、Java ME** - **Java SE (Standard Edition)**:标准版,适用于桌面应用程序。 - **Java EE (Enterprise ...

    JAVA新手入门笔记-编程基础知识

    * 执行速度慢:与C语言或C++语言相比,JAVA语言的执行速度较慢,这是因为JAVA语言需要通过JVM(Java Virtual Machine)来解释和执行字节码。 * 资源占用高:JAVA语言需要占用较多的系统资源,包括内存和CPU等,这...

    java入门 练习题题库

    ### Java入门练习题知识点解析 #### 一、事件监听接口中的方法返回值 - **知识点**: 事件监听接口是Java中实现用户界面交互的核心机制之一。事件监听接口中的方法通常用于响应特定类型的事件,例如鼠标点击、键盘...

    Java 2入门教程--Java

    方法定义了参数列表,用于传递输入值,并通过返回值返回结果。例如,计算两个数的和的方法如下: ```java public int sum(int a, int b) { return a + b; } ``` 七、类与对象 类是Java面向对象编程的基础,它是...

    java初级ppt--大学入门教程

    - **方法**:定义方法、参数传递、返回值,以及重载和重写。 5. **数组**:介绍一维和多维数组的声明、初始化和遍历,以及数组的应用实例。 6. **字符串处理**:讲解String类的特性,包括字符串的创建、连接、...

    Foundations of Java Programming - OOP Option - Călin Galeriu - LULU 2020.pdf

    - 形式参数和实际参数:介绍了形式参数是在函数声明中定义的参数,实际参数是调用函数时传递给函数的实际值。 8. Java对象和类: - 方法:在Math、String和StringBuffer类中重要的方法和常量。 - 构造器:Java类...

    Java入门练习50题

    - 方法定义与调用:学习如何编写和调用方法,理解参数传递机制。 2. **类与对象** - 类的定义:创建类并理解类的组成部分,如属性(fields)、构造器和方法。 - 对象的创建:了解new关键字的作用,以及如何实例...

    java从入门到精通(韩顺平视频)笔记整理

    ### Java从入门到精通知识点梳理 #### 第0讲 开山篇 - **Java技术领域划分**: - **JavaSE (J2SE)**:适用于桌面应用程序的开发。 - **JavaEE (J2EE)**:专注于网络应用及企业级开发。 - **JavaME (J2ME)**:...

    《Java基础入门(第3版)》(Java):课后答案-docx文档

    构造方法用于初始化类的实例,其特点包括与类名相同、无返回类型声明以及可以传递参数。 在学习Java时,除了掌握这些基础知识,还应注重实践,每天编写代码来加深理解,例如编写简单的`HelloWorld`程序,或者实现...

    Java 基础学习PPt---适合准备学习Java的初学者

    - 方法(函数):方法定义、参数传递、返回值。 - 异常处理:try-catch-finally结构,自定义异常。 - 注释:单行、多行和文档注释的使用。 4. **第四章:面向对象【上】** - 类与对象:类的定义、对象的创建与...

    DWR入门程序---计算输入的两个数之和.rar

    - 编写`Calculator.java`,定义`add(int num1, int num2)`方法,返回两个参数的和。 - 生成`dwr-generate.js`,确保`Calculator`类和`add`方法被映射。 - 在`index.html`中,引入`dwr-engine.js`和`dwr-generate....

    ireport操作手册(中文).pdf

    #### 七、字段、参数与变量 - **字段**: - SQL查询中定义。 - JavaBean属性。 - JRExtendedBeanDataSource。 - **参数**: - 在查询中使用。 - 程序传递。 - 内置参数。 - **变量**: - 定义计算过程。 - ...

    Grails入门指南 -- 针对grails1.0.4更新

    - **与Java的兼容性**:可以在Groovy代码中直接调用Java类,反之亦然。 - **强大的生态系统**:基于Hibernate(ORM)、Spring框架(MVC、依赖注入)和SiteMesh(界面布局管理)等成熟技术构建。 - **目标用户**: ...

    java参数传递学习demo

    java的参数传递对比,体现了值传递和引用传递的区别,是我在java入门是写的学习demo

    java程序员入门必读网文(来源于互联网)

    - **方法定义与调用**:方法是代码的模块化单元,通过参数传递和返回值实现功能复用。 3. **异常处理**: - Java中的异常处理机制(try-catch-finally)有助于编写健壮的代码,防止程序因错误中断。 4. **字符串...

    amazon-sqs-java-messaging-lib:此 Amazon SQS Java 消息传递库包含 Java 消息服务兼容类,用于与 Amazon Simple Queue Service 通信

    Amazon SQS Java Messaging Library包含 Java Message Service 兼容类,用于与 Amazon Simple Queue Service 进行通信。 该项目构建在适用于 Java 的 AWS 开发工具包之上,以使用 Amazon SQS 作为消息传递应用程序的...

    Java入门规则总结

    了解如何定义和调用方法,以及参数传递(值传递和引用传递)的概念。 7. **异常处理**:Java提供了异常处理机制,通过`try-catch-finally`块来捕获和处理运行时错误。理解不同类型的异常(检查型和运行时异常)及...

Global site tag (gtag.js) - Google Analytics