Java错题本---实时更新

来源:互联网 发布:怎么在电脑上安装淘宝 编辑:程序博客网 时间:2024/05/22 13:04

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数据的类型自动比较,实现向下转型,即小类型向大类型转换,低精度向高精度转换,最后返回的是大类型或者高精度的类型。

120x

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

[java] view plaincopy
  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 plaincopy
  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 = 1010i1 - i2 = 0i1 * i2 = 100i1 / i2 = 1




































0 0
原创粉丝点击