system.out.println(b+a);
时间: 2024-05-27 19:14:55 浏览: 127
This code will result in a compilation error as there is no operator between "b" and "a". It should be written as:
System.out.println("b" + "a");
This will print the string "ba" to the console.
相关问题
练习题: // 1. int i = 3; i = i++; System.out.prinltn(“i = ” + i); // 2. int i = 3; i = ++i; System.out.println(“i = ” + i); // 3. int i = 3; int a = i++ + i++ + i++; int b = ++i + ++i + ++i; System.out.println(“i = ” + i); System.out.println(“a = ” + a); System.out.println(“b = ” + b); // 4. int i = 5; i++; System.out.println(“i = ” + i); ++i; System.out.println(“i = ” + i); int a = ++i; System.out.println(“a = ”+ a); a = a++; System.out.println(“a = ” + a); a = ++a; System.out.println(“a = ” + a); // 5. int m = 3; int n = 2 * ++m; System.out.println(“n = ”+ n); public class _07AddAdd { public static void main(String[] args) { // 声明一个int类型变量a,赋值1 int a = 1; int b = 2; // a++: 先赋值再自增 ++a:先自增再赋值 int c = a++ + ++a + b--; int d = c++ + c-- + a++ + ++b; // a = ? b = ? c = ? d = ? System.out.println("a = " + a);// a = 4 System.out.println("b = " + b);// b = 2 System.out.println("c = " + c);// c = 6 System.out.println("d = " + d);// d = 18 } }
第一个程序会输出"i = 3",因为i已经被赋值为3,再将i赋值为i,也就是赋值为3。
第二个程序会输出"i = 3",因为第二个程序和第一个程序是完全一样的。
第三个程序会输出"i = 3","a = 27","b = 27",因为a和b都被赋值为i的3次方,也就是3的3次方,也就是27。
第四个程序会输出"i = 5","i = 5","a = 5","a = 5","a = 5",因为i没有被赋值为其他值,所以它的值一直保持为5。a在被赋值为i之后也没有被赋值为其他值,所以它的值也一直保持为5。
第五个程序会输出"n = 6",因为n被赋值为2乘以m,也就是2乘以3,结果为6。
第六个程序会输出"a = 4","b = 2","c = 6","d = 18",因为a先赋值为1,再自增3次,变为4;b没有发生变化,仍为2;c等于a的3次方再加上b的2次方再减去1,即6;d等于c的3次方再减去1再加上a的2次方再加上b的2次方,即18。
String A = "A"; String B = "B"; String C = "AB"; System.out.println(A + B == C); System.out.println(A + B == "AB");
在Java中,字符串字面量是存储在字符串常量池中的。当你创建字符串字面量时,Java虚拟机会先检查常量池中是否存在该字符串,如果存在,则不会创建新的字符串对象,而是直接返回常量池中的引用。这种机制称为字符串常量池优化。然而,当我们使用字符串拼接时,情况就有所不同了。
在你提供的代码中:
```java
String A = "A";
String B = "B";
String C = "AB";
System.out.println(A + B == C);
System.out.println(A + B == "AB");
```
首先,`A` 和 `B` 被创建为字符串常量池中的对象。然后,`C` 也是作为字符串常量被创建。
当执行 `A + B` 时,实际上是在运行时创建了一个新的字符串对象,这个对象是通过将 `A` 和 `B` 连接起来得到的,而不是直接从字符串常量池中获取的。因此,`A + B` 产生的字符串对象与字符串常量池中的 `C` 和 `"AB"` 不是同一个对象。
所以,第一个 `System.out.println(A + B == C);` 的输出结果为 `false`,因为它们指向的是不同的对象。
同理,`A + B` 产生的结果也不会与字符串常量 `"AB"` 相同,因为 `A + B` 创建了一个新的对象,而不是使用字符串常量池中的 `"AB"`。所以第二个 `System.out.println(A + B == "AB");` 的输出结果同样为 `false`。
阅读全文