因为Java语言中println函数只对字符串敏感,所以字符'1'和'2'之间的加号被认为是'1'和'2'相加,两个字符相加就是其ascii码相加,'1'的ascii码是49,'2'的ascii码是50,所以结果是99.后面加空字符串和数字3,4的加号,因为有空字符串,所以都被认为是连接字符串的符号,后面所有的数字都自动隐式转成字...
因为字符'你'在ascii中值是20320,字符'A'在ascii中值是65,所以x>'A'成立,y='爱',z='情',而你的else语句中没有大括号,else只作用于一行,因此z='她'会执行,所以最终的结果是:你爱她 你的代码等同于:public static void main(String[] args){char x = '你', y = 'e', z = ...
Integer是一个对象,==比较的是引用地址,与 int 比较,jvm会将Integer转化为int, 所以结果为true。但Integer之间比较时,如果是用new创建的对象,一定返回false。Integer 大于127 是需要新建 new 对象。Integer c = 128 ;会编译为 Integer c = Integer.valueOf(128); 是用new创建的对象。Intege...
这是Java中的多态机制,父类实例化一个子类,只要是子类中有的,其调用的是子类的方法或属性,这就是方法重写,多态性的一种表现形式。首先先调用子类的getI()方法,在方法中输出Sub,然后调用ga.i输出父类中的1,在输出子类getI()方法的返回值(这里的i为2)至于为什么会先输出Sub而不是先输出ga....
Foo类里面x的类型明显是原始数据类型,原始数据作为Class的属性是有默认值的,boolean的默认值就是false。foo.x明显就是输出对象foo的x属性值,默认是false,没错的。