java中关于基本类型和对象类型 我想知道这道题重的i到底是基本类型还是对象类型,为什么只没有变成3而是1呢,i和0分别存在内存中的什么地方 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这个是作用域的问题啦~i = new Integer(3);只在方法内有效,除非return出去的:public static Integer add3(Integer i){ i = i+3; i = new Integer(i); return i;}调用的地方:i = add3(i); add3()方法里面定义的 Integer i 只有在那个方法里面有效。正确传出数据就是调用的时候要返回值。楼主你是把 main 和 add3() 两个方法里面的 Integer i 给混淆起来了 基本类型有哪些? 基本类型简单点不用new的很好区分吧。 字符类型char, 布尔类型boolean 以及数值类型byte、short、int、long、float、double-----------------------------------------------------------你的问题可能想知道的是:值传递、引用传递这个问题。-----------------------------------------------------------看书中的基本知识吧。 Java中都是值传递的,引用也是值传递的,不过传递的值是引用的地址。方法内改变参数中引用所指向的对象,从方法返回后,方法里的对引用的地址的改变是无效的。 楼主,值既不是3也不是1吧。而是0吧。这里传递的i相当于一个副本,所以i的值不会变。好比一扇门有一把钥匙A,现在用A配了一把钥匙B,你把B修改了,A是不会变的。这里的add3方法就属于这种比喻。另外,如果传递的参数,调用了该对象的方法。比如obj.setXXX(param)之类的方法,那么obj将会改变。例子:public static void main(String[] args) { StringBuilder s = new StringBuilder("TEST"); System.out.println(s.toString()); test(s); System.out.println(s.toString()); test1(s); System.out.println(s.toString()); } public static void test(StringBuilder s){ s = new StringBuilder("1212121"); } public static void test1(StringBuilder s){ s.append("A"); } 这是个java项目 为啥我写的 D:没有日志文件呢 是哪写错了吗 谢谢先 jms和socket一起使用的问题,跪求 求高手帮我找下JAVA的错误在哪里 各位来帮帮忙啊!! 使用indexOf("·")搜索编码为A1A4的·这个符号找不到 在由面板触发的对话框里怎么实现对面板的重绘? 在编译servlet小程序时,,,程序说找不到java.servlet.*这个包,兄弟们个包在那里的呀 如何打jar包 如何在单独的函数的生成按钮的事件中得到上层JDialog的指针从而关闭它! 简单的问题:java的类怎么设置!!!谢谢!!! 《急急急》伊朗的夏令时是从什么时候开始? 从缓存中读数据的问题
i = new Integer(3);只在方法内有效,除非return出去的:public static Integer add3(Integer i){
i = i+3;
i = new Integer(i);
return i;
}调用的地方:i = add3(i);
字符类型char,
布尔类型boolean
以及数值类型byte、short、int、long、float、double
-----------------------------------------------------------
你的问题可能想知道的是:值传递、引用传递这个问题。
-----------------------------------------------------------
看书中的基本知识吧。
这里传递的i相当于一个副本,所以i的值不会变。
好比一扇门有一把钥匙A,现在用A配了一把钥匙B,你把B修改了,A是不会变的。这里的add3方法就属于这种比喻。
另外,如果传递的参数,调用了该对象的方法。比如obj.setXXX(param)之类的方法,那么obj将会改变。
例子:
public static void main(String[] args) {
StringBuilder s = new StringBuilder("TEST");
System.out.println(s.toString());
test(s);
System.out.println(s.toString());
test1(s);
System.out.println(s.toString());
}
public static void test(StringBuilder s){
s = new StringBuilder("1212121");
}
public static void test1(StringBuilder s){
s.append("A");
}