java - 不同值的变量如何引用?

标签 java

我正在做一些练习,想知道是否有人可以解释如何分别引用 int aa = 15

public class SwapVariables {

    public static void main(String[] args) {

    int a, b; 
    a = 15;
    b = 27;
    System.out.println("Before swap: a = "+a+" b = "+b);
    a = a + b;
    b = a - b;
    a = a - b;
    System.out.println("After swap: a = "+a+" b = "+b);
    }
}

最佳答案

埃利奥特的回答很好,但为了更好地理解它是如何工作的。一开始你声明了两个变量 a 和 b。这些只是内存中每个大小为 4 字节的区域中的引用(java 中的 int 为 32 位)。在第二行中,您说转到我“称为”a 的 4 个字节,并将它们命名为“a”并将其值设置为 15。因此,在内存中您正在执行写入过程。 b 也是如此。接下来,您将在开始时执行读取,然后执行写入。你是说转到内存中的“a”点并获取值,转到内存中的“b”点并获取值并执行加法,即42。取出结果并将其写入“a”点在内存中。现在“a”有了新值,旧值发生了变化。除非该内存区域发生更改,否则 a 的值将为 42。相同的逻辑适用于所有后续行。希望能帮助大家更好的理解!

关于java - 不同值的变量如何引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60122741/

相关文章:

java - Struts 2 REST 和验证

java - spring mvc 如何测试我的服务是否在发布请求中保留实体

java - 如何修复 Hadoop 警告 : An illegal reflective access operation has occurred error on Ubuntu

java - Spring官方文档中的问题

java - 当我将 Collection<Foo> 传递到一个单独的类时,我应该锁定什么对象?

java - 当你有 .jar 时如何写入文件

java - ExtJS JsonStore 和 Netty

java - SmartGWT-如何更改 listGrid 中的过滤器按钮图标?

Java - 改变指针改变值?

java - 在 Java 中,选项卡的 "char"是什么?如何传递 "Charset"?