两道经典的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
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
相关文章推荐
- Java程序员的日常 —— Java类加载中的顺序
- JAVA面试题1
- iOS面试题总结 (三)
- 这才叫做面试
- 剑指Offer----面试题二:实现Singleton模式
- 去某某-JAVA开发面试
- 程序员如何保证我们的代码质量
- 经典面试题——二叉树
- Java面试题及答案(一)
- 这年头,谁没被坑过(致敬给一线程序员)
- 绿盟面试
- 面试常用排序算法
- 程序员的批评与自我批评(转)
- 为什么我不想成为Web前端程序员
- 絮絮叨叨,码农中的唐僧
- 剑指Offer----面试题一:为类添加赋值运算符函数
- 阿里巴巴2016前端开发实习生面试一面面经(总结)
- 面试的几个小问题?
- 奋斗吧,程序员——第三十九章 人生不失意,焉能慕知己
- 嵌入式工程师开发工作主要做些什么,以后收入怎样