Java一个小问题
csdn上看到的一个小问题,当时看了下就得到答案,结果错的。请教下大家这个程序输出结果,为什么?publicclassTest{publicstaticinta;publ...
csdn上看到的一个小问题,当时看了下就得到答案,结果错的。请教下大家这个程序输出结果,为什么?
public class Test {
public static int a;
public static void main(String[] args) {
modify(a);
System.out.println(a);
}
public static void modify(int a) {
a++;
}
}
对于基本类型是值传递这个问题做了下小小的测试,对于8种基本类型之外的String测试了下,
代码:
public class Test {
public static String s = "s";
public static void main(String[] args) {
modify(s);
System.out.println(s);
}
public static void modify(String s) {
s += "test";
}
}
输出结果:
s
String不是基本数据类型,所以我在想是不是还有一些其他的方面,先谢谢大家的回答 ^_^ 展开
public class Test {
public static int a;
public static void main(String[] args) {
modify(a);
System.out.println(a);
}
public static void modify(int a) {
a++;
}
}
对于基本类型是值传递这个问题做了下小小的测试,对于8种基本类型之外的String测试了下,
代码:
public class Test {
public static String s = "s";
public static void main(String[] args) {
modify(s);
System.out.println(s);
}
public static void modify(String s) {
s += "test";
}
}
输出结果:
s
String不是基本数据类型,所以我在想是不是还有一些其他的方面,先谢谢大家的回答 ^_^ 展开
5个回答
展开全部
两个小程序都是一个性质
局部变量的值是有改变
可你打印的都是全局变量
而全局变量的值从来都没变过。。。
--------------------------------------------------
public static void modify(int a) {
a++;
}
这边函数里面的a是新的
不是
public static int a;
定义的a
而
System.out.println(a);
的a却是那个全局的a
就是说,全局变量a的值都没变过。。。
局部变量的值是有改变
可你打印的都是全局变量
而全局变量的值从来都没变过。。。
--------------------------------------------------
public static void modify(int a) {
a++;
}
这边函数里面的a是新的
不是
public static int a;
定义的a
而
System.out.println(a);
的a却是那个全局的a
就是说,全局变量a的值都没变过。。。
展开全部
在java里基本数据类型是值传递的.一般来说在java对象类型是引用传值,而基本类型是值传递.值得注意的是基类型的包装类和String类型都是值传递的.
也就是说public static int a;
改成public static Integer a;结果也是一样的.同样你也可以试一下String类型,结果做和你想象的不一样
也就是说public static int a;
改成public static Integer a;结果也是一样的.同样你也可以试一下String类型,结果做和你想象的不一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
0
所谓的值传递(by value)和引用传递(by reference)
基本数据类型是值传递,所以在main里面,a没有变化。
所谓的值传递(by value)和引用传递(by reference)
基本数据类型是值传递,所以在main里面,a没有变化。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把函数里的 int a 改成 int b
输出结果就是你 想的吧!
输出结果就是你 想的吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是a 参数传递相当于赋值语句 对吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询