Java错题本---实时更新

1.求输出

/*
 * @author mengdexin
 *  */
public class Test {
    public static void main(String[] args) {
    	char x = 'x';
    	int i = 10;
    	System.out.println(false ? i : x );  //i不是常量,x会被转为int
    	System.out.println(false ? 10 : x );  //10是常量,不变化
    }
} 

解析:

条件表达式的返回类型应该看第2和第3个的类型吧:
(1)如果第2和第3个数据的类型一致,那么就返回这个类型。
(2)如果一个类型是byte、short或者char,而且另一个是int常量(注意是常量),而且这个常量可以用前面的类型来表示,所以返回的应该就是前面的3个类型之一,具体看是3个的哪一个。
(3)如果不符合(1)(2),则第2和第3数据的类型自动比较,实现向下转型,即小类型向大类型转换,低精度向高精度转换,最后返回的是大类型或者高精度的类型。

120
x

2.运算符优先级问题,下面代码的结果是多少?(笔试)

[java]  view plain copy
  1. package test;  
  2.   
  3. public class Test {  
  4.     public static void main(String[] args) {  
  5.         int k = 0;  
  6.         int ret = ++k + k++ + ++k + k;  
  7.         // ret的值为多少  
  8.         System.err.println(ret);  //1+1+3+3=8
  9.     }  
  10. }  

3.运算符问题,下面代码分别输出什么?(笔试)

[java]  view plain copy
  1. package test;  
  2.   
  3. public class Test {  
  4.     public static void main(String[] args) {  
  5.         int i1 = 10, i2 = 10;  
  6.         System.err.println("i1 + i2 = " + i1 + i2);  
  7.         System.err.println("i1 - i2 = " + (i1 - i2));  
  8.         System.err.println("i1 * i2 = " + i1 * i2);  
  9.         System.err.println("i1 / i2 = " + i1 / i2);  
  10.     }  
  11. }  
解析:

i1 + i2 = 1010
i1 - i2 = 0
i1 * i2 = 100
i1 / i2 = 1




































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值