新手 java 基础小问题....

hhjjhh009 2008-07-25 11:19:46
//两个小程序的区别:
转向了........
class intData
{
public static void main(String args[])
{
int x=5;
change(x);
System.out.println(x);
}
public static void change(int x)
{
x=3;
System.out.println("Name="+x);
}
}
//结果为 Name=3 , 5

class intData
{
public static void main(String args[])
{
int x[]=new int[1];
x[0]=5;
change(x);
System.out.println(x[0]);
}
public static void change(int x[])
{
x[0]=3;
System.out.println("haha="+x[0]);
}
}
//结果为 Name=3 , 3
我刚自学java 可以说的详细点吗?
...全文
101 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yushan5118 2008-07-25
  • 打赏
  • 举报
回复
学习
ZangXT 2008-07-25
  • 打赏
  • 举报
回复
首先区分基本类型和引用类型.
然后知道java中方法调用时所有的参数传递都是值传递
hhjjhh009 2008-07-25
  • 打赏
  • 举报
回复
谢谢 大家帮忙 问题已经清楚了
JeffFang 2008-07-25
  • 打赏
  • 举报
回复
最近好像java传值问题很火
luowanq 2008-07-25
  • 打赏
  • 举报
回复
转向这个词我喜欢,老婆经常说的,哈哈

个人觉得学java基础的时候内存非常重要,区分基本数据类型和引用数据类型的关键也就是内存

分析每一句话在内存中产生的变化,你就能明白为什么了
ZangXT 2008-07-25
  • 打赏
  • 举报
回复
不明白的地方记住怎么用就行了,一开始很难区分,程序写多了什么都明白了。
推荐好好看看core java
dongqdonglin 2008-07-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ZangXT 的回复:]
首先区分基本类型和引用类型.
然后知道java中方法调用时所有的参数传递都是值传递
[/Quote]基本这个
whmjxa 2008-07-25
  • 打赏
  • 举报
回复
java中参数传递是传值的,第一个代码,它只是把x的值传过去了,在change方法中修改这个值,修改后的这个值只在change方法内部有效,而成员变量x的值是没有改变的
第二个代码,传过去的是x数组的内存地址,也就是x[0]的地址,在change方法中把5赋值给了x[0]这个内存地址,所以成员变量x[0]的值也改变了
long010000 2008-07-25
  • 打赏
  • 举报
回复
public static void change(int x)
{
x=3;
System.out.println("Name="+x);
}
这部分的x在声明的时候声明成局部变量,当包含他的花括号结束的时候就会释放~并且参数传递为值传递,所以没有影响到main中的的x的值.

int x[]=new int[1];
引用类型的x实际存储的是对象的句柄,可以简单理解成记录了x[]对象所在的内存地址.
public static void change(int x[])
{
x[0]=3;
System.out.println("haha="+x[0]);
}
这个方法通过地址把x[0]在内存的位置找到了并且把值改变了.最后再通过该地址打印输出的也就是改变后的值了.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧