java 中形参与实参的转换
java中有两个参数,一个是形参,一个是实参。
形参:在函数定义中,整个函数体内部都可以使用,离开了该函数就不能继续使用。
实参:出现在主函数中,进入被调函数后,实参变量也就不能继续使用。
public class Demo {
/*
* (int a,int b) 这里的a b就是形参
*/
public static void exchange(int a,int b) {
int temp=0;
temp=a;
a=b;
b=temp;
System.out.println("a="+a+" "+"b="+b);
}
public static void main(String[] args){
int _a=1;
int _b=2;
// _a _b就是实参
exchange(_a,_b);
}
}
按值传递:
public class Demo {
public static void transmit(int a) {
a=1234;
System.out.println("a="+a);
}
public static void main(String[] args){
int _a=1;
/*
12 * transmit(_a) _a是所谓的实参. 调用函数transmit(a)时,a也就是所谓的形参(局部变量)!
13 * 分配给a stack内存中的一块空间,空间名称为a, 值为_a=1; 也就是 a=_a 将_a的值赋予给a --> 所谓的按值传递
14 * 实参传给形参多少 就是 多少
15 */
transmit(_a);
System.out.println(_a); //输出1
}
}
内存解析:
int _a=1; 基本变量--> 在stack中占用一块内存(基本变量只占用一块内存);
transmit(_a); 调用方法public static void transmit(int a);
方法transmit中的int a为形参也是局部变量 --> 在stack中也占用一块内存,位于_a的上方;
然后输出a=1234;
在执行完方法时,之前方法中的所有局部变量都要消失,他们所占用的空间也就消失; stack中也就不存在a 的内存;
然后输出主函数的_a=1; 值传递不会改变实参的值,除非方法里面给实参赋予了新的值;
main()也执行完毕,此时_a在stack中所占用的内存也消失;
java 中形参与实参的转换的更多相关文章
- 关于Java中形参与实参的理解
今天阅读了一个写的非常棒的博文,通过此博文再次复习了Java中参数传递的知识(即值传递与引用传递的区别).参考网站http://www.cnblogs.com/binyue/p/3862276.htm ...
- 深入理解java的形参和实参
转载声明:本文转载自公众号「码匠笔记」. 前几天在头条上看到一道经典面试题,引发了一些思考.也是写这篇文章的导火索. 背景 请看题: public classMain{ publicsta ...
- Java中数据类型及其之间的转换
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
- Java中数据类型及其之间的转换(转)
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
- js 函数中形参与实参的关系
函数中形参与实参的关系 对于形参和实参的定义,在 权威指南中有着明确的定义.但是,我们更在意的是它们之间的关系,到底形参会不会影响到实参? 形参到底会不会影响到实参? 对于这个问题的答案,请先看以下两 ...
- 关于==和equals()方法&Java中string与char如何转换&String,StringBuffer
1.对于基本数据类型,可以直接使用==和!=进行内容比较 如:int x=30; int y=30; x==y; //true 基本数据类型 简单类型(基本类型) bo ...
- java的形参与实参的区别以及java的方法
package com.lv.study; public class Demo05 { public static void main(String[] args) { //我想要用什么分隔符进行分隔 ...
- 一段代码了解Java中char和int的转换
题目要求: 将输入的大写字母转成对应小写的后5个,如A转换后为f:如果转换后大于z则从a重新计,即多出1就转成a,多出2就转成b以此类推. Java代码: ```java private static ...
- Java中int和String互相转换的多种方法
1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...
随机推荐
- python monkey 猴子补丁技术编程,修改python json dumps方法。
1.猴子补丁就是不改变原有模块的内容的前提下,给原有模块新增方法或者修改原有模块. 一个模块的函数,如果希望改变函数的功能,不改变函数名,通常是库模块,你不可能去修改三方库的源码的,实施起来不方便,而 ...
- ios开发之--[_NSInlineData objectForKeyedSubscript:]
reason: '-[_NSInlineData objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fa2049 ...
- ios开发之--理解NSStringDrawingOptions每个选项的用法与意义
typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) { NSStringDrawingUsesLineFragmentOrigin = < ...
- form enctype:"multipart/form-data",method:"post" 提交表单,后台获取不到数据
在解决博问node.js接受参数的时候,发现当form中添加enctype:"multipart/form-data",后台确实获取不到数据,于是跑到百度上查了一下,终于明白为什么 ...
- 【RF库XML测试】测试的XML文件说明
文件存放路径:C:\workspace\robotframework\test_rf_api\testdata\XML.xml 文件内容: <example> <first id=& ...
- Ruby Tutorial
http://www.tutorialspoint.com/ruby/ruby_quick_guide.htm http://www.cnblogs.com/PurpleCow/archive/201 ...
- 在linux下如何判断是否已经安装某个软件?
如果你使用rpm -ivh matlab装的,用rpm -qa | grep matlab肯定是能够找到的. 如果你是用make && make install装的.那么最好直接去找执 ...
- Lua中的注释
Lua中有两种注释:行注释和块注释.行注释以“--”开头,可以注释这一行后面的内容.块注释以“--[[”开始,以“--]]”结尾,可以注释这个范围内的整个内容:块注释可以注释多行内容.下面是一个示例: ...
- RewriteCond和13个mod_rewrite应用举例Apache伪静态
1.给子域名加www标记 RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC] RewriteCond %{HTTP_HOST} !^www\. ...
- 【Spring Boot&&Spring Cloud系列】Spring Boot中使用NoSql数据库Redis
github地址:https://github.com/AndyFlower/Spring-Boot-Learn/tree/master/spring-boot-nosql-redis 一.加入依赖到 ...