您的位置:首页 > 职场人生

两道经典的java面试题

2016-05-18 23:16 441 查看
1.在不用任何中间变量和加减乘除符号的情况下将5和10交换

public class Change {

public static void main(String[] args) {

int i=5;
int j=10;
i=i^j;  
j=i^j;
//等于j=i^j^j.,就是j=i.运用到两个异或的性质:1.任何数与本身异或都为0;2.任何数与0异或都为本身
i=i^j;
//等于i=i^j^i,就是i=j
System.out.println(i);
System.out.println(j);
}

}

输出结果为i=10,j=5

2.

public class Change {

public static void main(String[] args) {

int i=0;
char b='b';
System.out.println(true?b:1);  
//1占1个字节,小于字符型的2个字节,所以输出b而不是转化成ASCII码值
System.out.println(true?b:111100);
//十进制111100大于char型的2个字节,所以输出整型(ASCII码值98)
System.out.println(false?i:b);
//i为整形变量,字符型跟变量比较时转化成相对应类型的变量输出,所以输出整型(ASCII码值98)
}

}

 以上程序输出结果为:b,98,98
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: