为什么java中输出的结果会是1234?

因为Java语言中println函数只对字符串敏感,所以字符'1'和'2'之间的加号被认为是'1'和'2'相加,两个字符相加就是其ascii码相加,'1'的ascii码是49,'2'的ascii码是50,所以结果是99.后面加空字符串和数字3,4的加号,因为有空字符串,所以都被认为是连接字符串的符号,后面所有的数字都自动隐式转成字...
为什么java中输出的结果会是1234?
因为Java语言中println函数只对字符串敏感,所以字符'1'和'2'之间的加号被认为是'1'和'2'相加,两个字符相加就是其ascii码相加,'1'的ascii码是49,'2'的ascii码是50,所以结果是99.后面加空字符串和数字3,4的加号,因为有空字符串,所以都被认为是连接字符串的符号,后面所有的数字都自动隐式转成字符串,所以连接起来就是9934字符串
public class H {
public static void main(String []args) {
System.out.println('1'+'2'+""+3+4);
}
}

如果你把空字符串放到字符'1'前面,那么后面所有的加号都被认为是连接字符串的符号,后面所有的数字和字符都自动隐式转成字符串,输出就是1234字符串
public class H {
public static void main(String []args) {
System.out.println(""+'1'+'2'+3+4);
}
}

2024-01-10
mengvlog 阅读 9 次 更新于 2025-06-20 01:17:45 我来答关注问题0
  • 因为Java语言中println函数只对字符串敏感,所以字符'1'和'2'之间的加号被认为是'1'和'2'相加,两个字符相加就是其ascii码相加,'1'的ascii码是49,'2'的ascii码是50,所以结果是99.后面加空字符串和数字3,4的加号,因为有空字符串,所以都被认为是连接字符串的符号,后面所有的数字都自动隐式转成字...

  •  WMYUOM JAVA中 为什么这三种输出结果是true,false,true?

    Integer是一个对象,==比较的是引用地址,与 int 比较,jvm会将Integer转化为int, 所以结果为true。但Integer之间比较时,如果是用new创建的对象,一定返回false。Integer 大于127 是需要新建 new 对象。Integer c = 128 ;会编译为 Integer c = Integer.valueOf(128); 是用new创建的对象。Intege...

  •  百度网友12ee0fd 这道java题输出结果为什么是9.0

    你看,int,float是不是都无法接受啊?唯有double可以接受,因为java默认小数类型就是double类型!应了那句话,当你想比对两个数字的时候,首先要做的就是,统一数据类型!So:现在可以肯定的说,确实是类型提升的原因!

  •  第一碗羊杂割 java 中,为什么4&7结果是4

    4 的二进制值是 100,7 的二进制值是 111(实际上 Java 在存储两个数到内存时会自动在有效值 100 和 111 之前补 29 个零来达到整数类型的 4 byte 大小,此处为了方便展示就不补全前面的一串零了),& 是将两数进行位与位的 and 操作(0 & 1 = 0,1 & 1 = 1),所以操作步骤就是 4...

  •  孤独的探戈1573 下面java输出结果为什么是good and gbc

    这是java参数传递方式的问题,Java参数,不管是原始类型还是引用类型,传递的都是副本。如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值。如果在函数中改变了副本的 值不会改变原始的值。如果参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部