当前位置:  技术问答>java相关

那位师兄解释一下,50分送上!

    来源: 互联网  发布时间:2015-02-22

    本文导语:  以下两个程序何输出的结果不同:请解释一下(点拨一下:)) //程序一MyFile1.java public class MyFile{ public static void main(String[] args){ int xx=1; bumper(xx); System.out.println(xx); } public static void bumper(int bumpMe){ bumpMe++; ...

以下两个程序何输出的结果不同:请解释一下(点拨一下:))
//程序一MyFile1.java
public class MyFile{
public static void main(String[] args){
int xx=1;
bumper(xx);
System.out.println(xx);
}
public static void bumper(int bumpMe){
bumpMe++;
}
}
运行结果为"1";

//程序二MyFile2.java
public class MyFile2{
public static void main(String args[]){
int[] myValue={1};
modifyIt(myValue);
System.out.println ("MyValue contains"+myValue[0]);

}
public static void modifyIt(int[] value){
value[0]++;
}
}
运行结果为  2
谢谢

|
在JAVA中数组实际上是一个对象,所以传递数组时会将一个引用传递进去,对它的元素的修改会直接修改原始数据,对简单类型(int等)则按值传递,所以不会影响原始数据。

|
第一个参数是按值传递,bumpMe++;对xx没有影响

|
In java, if the primitive data type as a function parameters, it will act as the type "by value"; otherwise, if the object as a function parameters, it will act as the type "by reference".
Because the parameter "bumpMe" is a primitive data type, but not the parameter "value".


|
void modifyIt(int[] value){
参数是按引用传递,会改变原始变量

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 哪位java同门师兄有《java2编程详解》电子文档,注意不是影印版
  • c/c++开源软件 iis7站长之家
  • 各位师兄师姐再帮忙看看为什么下面的代码运行时出错?
  • 哪位师兄师姐有《java2类库》orjava的API中文联机文档阿?
  • 向各位师兄师姐请教一个JAVA小程序
  • 请问师兄java2 考试认证学习指南第112表中间的N/A是什么意思呀?
  • 请师兄告诉一下transistions 在下面这句话中的意思!(找不到这个单词,心里总憋得慌!)
  • 我是JAVA的一位初学者请各位师兄师姐帮忙看看下面的代码为什么会提示出错?
  • 众位师兄、师姐,俺编译得内核不能启动,咋回事儿呀?
  • 请教各位师兄学习JAVA需要什么基础?
  • 各位师兄,请问如何从Windows下的VC++转干Linux 下的C++?
  • 一些关于static modifier 的说明,我有点迷惑,请那位师兄给指点一下!
  • java Socket问题求救!!师兄师姐们救命阿!!!!
  • 师兄:哪儿有免费资源下载?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3