Tag: 传递引用

在java中交换对象

我已经研究过java是通过引用传递但是当我执行下面的代码时,字符串在主方法中没有交换为什么? static void swap(String s1, String s2){ String temp = s1; s1=s2; s2=temp; } public static void main(String[] args) { String s1 = “Hello”, s2 = “world”; swap(s1, s2); System.out.println(s1 + s2); }

在Java中交换两个字符串,方法是将它们传递给实用程序函数,但不返回对象或使用包装类

我试图在Java中交换两个字符串。 我从未真正理解“字符串是不可变的”。 我在理论上理解它,但我在实践中从未遇到过它。 此外,由于String是Java中的对象而不是基本类型,我不明白为什么以下代码两次打印相同的结果,而不是交换单词! public static void main(String[] args) { String s1 = “Hello”; String s2 = “World”; System.out.println(s1 + ” ” + s2); Swap(s1, s2); System.out.println(s1 + ” ” + s2); } public static void Swap(String s1, String s2) { String temp = s1; s1 = s2; s2 = temp; } 我想要它打印 Hello World […]

Java对象分配

我是Java新手,关于对象分配我有一些问题。 例如, Test t1 = new Test(); Test t2 = t1; t1.i=1; 假设变量i是在Test类中定义的,我是否正确假设t1和t2都指向同一个对象,其中修改t1.i=1影响t1和t2 ? 实际上我测试了它,看起来我是对的。 但是当我在String上尝试相同的操作时,修改仅发生在另一侧不受影响的一侧。 这背后的原因是什么? 编辑:我尝试使用String的情况。 String s1 = “0”; String s2 = s1; s1 = “1”; System.out.println(s1); System.out.println(s2); 我通过测试String上的案例来实现我的错误,因为它是不可变的。 我认为s1=”1″修改字符串的情况实际上是将参数“1”返回给s1。 不过,我的问题仍然存在。 Test t2 = t1; 因为t2和t1都指向同一个对象,或者现在每个都有自己的对象? 这种情况是否适用于Java上的所有对象?

如何增加类Integer从另一个方法引用java中的值

package myintergertest; /** * * @author Engineering */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { //this one does not increment Integer n = new Integer(0); System.out.println(“n=” + n); Increment(n); System.out.println(“n=” + n); Increment(n); System.out.println(“n=” + n); Increment(n); System.out.println(“n=” + n); Increment(n); //this one […]

为什么java支持不像C ++那样通过引用传递

我已经读过每个原始数据类型和对象引用按值传递的位置? 我曾尝试在Google中搜索为什么java支持不通过引用传递,但我只是得到java不支持通过引用传递 , 我找不到它背后的任何原因 。 为什么不通过引用传递原始数据类型? 编辑:大多数人已经关闭了我的问题,假设它是主观的和议论性的。 嗯,它不是,它有一个明确的答案,我的问题是为什么你不能创建一个抽象类的对象,它也不是重复,因为大多数答案只是明确地说不。 谢谢。

Java是通过引用传递的吗?

Java真的支持通过引用传递吗? 如果没有,为什么我们有==运算符来查找具有相同引用的两个对象?

Java:如何通过引用传递byte ?

您可以使用关键字“ref”在.NET中执行此操作。 有没有办法在Java中这样做?

在比较Java中的整数包装器时,为什么128 == 128 false但127 == 127为真?

class D { public static void main(String args[]) { Integer b2=128; Integer b3=128; System.out.println(b2==b3); } } 输出: false class D { public static void main(String args[]) { Integer b2=127; Integer b3=127; System.out.println(b2==b3); } } 输出: true 注意:-128到127之间的数字为真。