java的方法传参,最容易混淆的问题!!!
参数传递
参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了。这种传递方式,我们称为参数传递。
- 在这里,定义方法时,参数列表中的变量,我们称为形式参数
- 调用方法时,传入给方法的数值,我们称为实际参数
我们看下面的两段代码,来明确下参数传递的过程:
public class ArgumentsDemo01 {
public static void main(String[] args) {
int a=5;
int b=10;
change(a, b);//调用方法时,传入的数值称为实际参数
System.out.println("a=" + a);
System.out.println("b=" + b);
}
public static void change(int a, int b){//方法中指定的多个参数称为形式参数
a=200;
b=500;
}
}
程序的运行结果如下:

再看另一段代码
public class ArgumentsDemo02 {
public static void main(String[] args) {
int[] arr = { 1, 2, 3 };
change(arr);// 调用方法时,传入的数值称为实际参数
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void change(int[] arr) {// 方法中指定的多个参数称为形式参数
for (int i = 0; i < arr.length; i++) {
arr[i] *= 2;
}
}
}
程序的运行结果如下:

总结:
在方法传参的过程中的要分清楚传递的是基本数据类型还是引用数据类型.其中基本数据类型传递过程中传递的是数值本身,而引用数据类型传递的是地址值! 所以基本数据类型传递的时候的数据值不会发生改变,而引用数据类型数值发生改变.
java的方法传参,最容易混淆的问题!!!的更多相关文章
- 再谈Java方法传参那些事
把一个变量带进一个方法,该方法执行结束后,它的值有时会改变,有时不会改变.一开始会觉得--“好神奇呀”.当我们了解java内存分析的知识后,一切都是那么简单明了了--“哦,这么回事呀”.但是今天的上机 ...
- Java 常用类库一,main方法传参String[] args;获取输入Scanner ;hasNext();hasNextInt()
1. main方法传参 package com.zmd.common_class_libraries; /** 给mian方法传参测试 */ public class MainArgsTest { p ...
- java复用和传参
java复用和传参的三种方法总结: (1) 直接在一个类中调用函数 : 1 package test1; 2 3 public class a 4 { 5 public static void get ...
- [Java]_函数传参的疑惑与思考
问题来源于leetcode上的两道题 Path Sum I && II,分别写了两个dfs. void dfs(TreeNode node , int sum , ArrayList& ...
- Java的对象传参问题
在c/c++中对于传参类型,无外乎就是传值.传引用.传指针这几种.但在java中,由于没有指针类型,其传参的方式也发生了相应的变化.之前有搜过相关的知识点一直理解的是:Java的传参方式中主要有两种: ...
- 对象引用 方法传参 值传递 引用传递 易错点 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- MyBatis dao层 方法传参
MyBatis dao层 方法传参有三种方法. 1. 以下标的方法获取参数. <update id="insertSuccessKilled"> INSER ...
- EasyUI queryParams属性 在请求远程数据同时给action方法传参
http://www.cnblogs.com/iack/p/3530500.html?utm_source=tuicool EasyUI queryParams属性 在请求远程数据同时给action方 ...
- javascript 字符串方法传参
javascript 字符串方法传参由于嵌套的单引号,双引号过多.有点混乱.. 正确方法如下: ' <td align="left"><input type= ...
随机推荐
- 【Python】使用Pytest集成Allure生成漂亮的图形测试报告
前言 大概两个月前写过一篇<[测试设计]使用jenkins 插件Allure生成漂亮的自动化测试报告>的博客,但是其实Allure首先是一个可以独立运行的测试报告生成框架,然后才有了Jen ...
- css强制html不换行 css强制英文单词断行 重拾丢失的
css强制html不换行 css强制英文单词断行 强制不换行 div{ white-space:nowrap; } 自动换行 div{ word-wrap: break-word; word-brea ...
- BZOJ1228 [SDOI2009]E&D
蒟蒻不会= = 话说写题解的巨巨也只会打表233 反正先A掉再说 /************************************************************** Pro ...
- vue router动态路由
<div id="#app"> <router-link to="/user/header">路由1</router-link&g ...
- epoll 模型
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- 爱奇艺、腾讯、优酷、搜狐、芒果、乐视、PPTV、音悦台等VIP视频免费观看
观看地址一:http://www.luoruiyuan.cn/pages/id-62_uid-2_btid-35.html 观看地址二:http://movie.luoruiyuan.cn/vip.h ...
- SpringDataJPA最佳实践(一)简介
在团队中使用SpringDataJPA有一段时间了,也踩过一些坑,这里记录一下学习历程. 1.简介 Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架 ...
- java并发编程之volatile
Java语言规范第三版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量. 了解volatile关键字之 ...
- 在win10下安装双系统ubuntu16.04.3教程
闲暇了两天,终于想起来要装一个Liunx系统了.于是捣鼓了一番,实现了在Win10下安装Ubuntu16.04.3版本. 一.准备工作 下载Ubuntu 16.04.3镜像 准备一个2G以上的U盘 下 ...
- [笔记]CodeIgniter的SESSION
由于HTTP协议本身是无状态的,所以当保留某个用户的访问状态信息时,需要客户端有一个唯一标识传给服务端,这个唯一标识就是SESSION ID,存放在客户端的COOKIE中,然后服务端根据该标 ...