这是以前别人发的帖子,我整理了一下,都是一些很有趣的题目。
2011-08-13 07:38
579 查看
前言
大家先不要上机,先看看能不能得到正确的结果,请大家最好写上你所做的题目的相关知识点,这样大家都可以学习。
有兴趣的朋友可以篇号.题号,然后给出自己的想法。当然我想肯定有人做过这些题目了。
希望大家可以给出相关的想法,相关的考点,我已经整理了一份答案,到时候再贴出来。
第一篇
1.如果问大家“&”、“|”、“^”这三个是什么运算符?基会本上都会回答“位运算符”,但这样的回答只能得50分。大多数的Java程序员很可能不知道它还能充当其他的运算符——布尔逻辑运算符(前提是两边的数据类型为布尔类型)。
在布尔逻辑运算符中这三个运算符充当着“布尔逻辑与”、“布尔逻辑或”和“布尔逻辑异或”的角色。前面两个把它们再复制一个放在一起就成了逻辑运算符。布尔逻辑与(&)和布尔逻辑或(|)运算符的工作方式同逻辑与(&&)和逻辑或(||)的工作方式相同,布尔逻辑运算符的优先级别要高于逻辑运算符,除此之外它们还有一点细微的差别,看一看下面的程序将会输出什么,就会明白了。
最后一个布尔逻辑异或(^)用得就更少了,可以采用关系运算符不等于(!=)来代替,在此就不深究了。
布尔逻辑运算符与逻辑运算符还有个区别,就是布尔逻辑运算符可以与赋值运算符(=)结合成布尔逻辑赋值运算符(&=、|=、^=),而逻辑运算符就没有这样的功能,可能它本身就有两个了吧,再结合“=”的话就变三个了,呵呵,太多了 :)
Java code
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
2. 自动装箱的疑惑
JDK1.5中增加了自动拆装箱的语言特性,在基本类型和包装类型之间可以相互地转换和运算。大家也都知道Java中==运算符是比较两个对象间的引用是否相同。在自动拆装箱与“==”运算符之间也会产生一些奇怪的事情,看看下面的程序将会输出什么?
Java code
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
3. 奇怪的\u与0x
\u是Unicode字符的前缀,而0x是十六进制数值的前缀,能通用吗?下面的程序是否能如愿以偿地将Hello与World!分成两行输出呢?
Java code
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
4.不可能发生的事
来个简单点的填空题哈,在空格处填上适当的数,让下面的程序能输出“Hello World!”。
Java code:
Java code
填入:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
5,模棱两可的方法重载
invoke有两个重载的方法,一个是Object作为参数,另一个是int[]作为参数,看看下面的程序会输出什么?
Java code:
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
6,Number引起的计算错误
Number是众多数值类型的抽象父类,难道用它会引发计算错误?!看看下面的程序会输出什么?
Java code:
Java code
Output:
第二篇
下面的几个程序会输出什么?先不要上机哦!!!
1.输出:
Java code:
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
2.输出:
Java code:
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
3
请补全 i 的声明(要求:i 不允许为 float、double、Float 和 Double 类型)让其能输出“Hello World”。
Java code:
Java code
填入:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
4.请问以下程序的输出结果是什么?
Java code:
Java code
输出:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
5. 请将下面程序中的空格补全(要求见程序中)
// 忽略 import 语句
Java code:
Java code
填入:
第三篇
1. 请问以下程序会输出什么?
Java code:
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
2. 程序会输出什么呢?
Java code:
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
3. 程序输出什么?
Java code:
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
4.继续输出什么?
Java code:
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
5.输出神马?
Java code:
Java code
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
6. 请在以下程序段中的空白处补上最简洁的语句,在程序运行后会输出运行时的时间。
显示格式为:yyyy-MM-dd HH:mm:ss
Java code:
Java code
大家先不要上机,先看看能不能得到正确的结果,请大家最好写上你所做的题目的相关知识点,这样大家都可以学习。
有兴趣的朋友可以篇号.题号,然后给出自己的想法。当然我想肯定有人做过这些题目了。
希望大家可以给出相关的想法,相关的考点,我已经整理了一份答案,到时候再贴出来。
第一篇
1.如果问大家“&”、“|”、“^”这三个是什么运算符?基会本上都会回答“位运算符”,但这样的回答只能得50分。大多数的Java程序员很可能不知道它还能充当其他的运算符——布尔逻辑运算符(前提是两边的数据类型为布尔类型)。
在布尔逻辑运算符中这三个运算符充当着“布尔逻辑与”、“布尔逻辑或”和“布尔逻辑异或”的角色。前面两个把它们再复制一个放在一起就成了逻辑运算符。布尔逻辑与(&)和布尔逻辑或(|)运算符的工作方式同逻辑与(&&)和逻辑或(||)的工作方式相同,布尔逻辑运算符的优先级别要高于逻辑运算符,除此之外它们还有一点细微的差别,看一看下面的程序将会输出什么,就会明白了。
最后一个布尔逻辑异或(^)用得就更少了,可以采用关系运算符不等于(!=)来代替,在此就不深究了。
布尔逻辑运算符与逻辑运算符还有个区别,就是布尔逻辑运算符可以与赋值运算符(=)结合成布尔逻辑赋值运算符(&=、|=、^=),而逻辑运算符就没有这样的功能,可能它本身就有两个了吧,再结合“=”的话就变三个了,呵呵,太多了 :)
Java code
Java code
public class Test1 { public static void main(String[] args) { int m = 5, n = 5; if ((m != 5) && (n++ == 5)) { } System.out.println("a." + n); m = n = 5; if ((m != 5) & (n++ == 6)) { } System.out.println("b." + n); m = n = 5; if ((m == 5) || (n++ == 5)) { } System.out.println("c." + n); m = n = 5; if ((m == 5) | (n++ == 6)) { } System.out.println("d." + n); } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
2. 自动装箱的疑惑
JDK1.5中增加了自动拆装箱的语言特性,在基本类型和包装类型之间可以相互地转换和运算。大家也都知道Java中==运算符是比较两个对象间的引用是否相同。在自动拆装箱与“==”运算符之间也会产生一些奇怪的事情,看看下面的程序将会输出什么?
Java code
Java code
public class Test2 { public static void main(String[] args) { int k = 100; Integer int1 = k; Integer int2 = k; System.out.println("a." + (int1 == int2)); k = 200; Integer int3 = k; Integer int4 = k; System.out.println("b." + (int3 == int4)); char c = 'A'; Character char1 = c; Character char2 = c; System.out.println("c." + (char1 == char2)); c = '国'; Character char3 = c; Character char4 = c; System.out.println("d." + (char3 == char4)); } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
3. 奇怪的\u与0x
\u是Unicode字符的前缀,而0x是十六进制数值的前缀,能通用吗?下面的程序是否能如愿以偿地将Hello与World!分成两行输出呢?
Java code
Java code
public class Test3 { public static void main(String[] args) { /* 提示 \u000A 表示换行(LF),而 0x000A 表示什么呢? */ char c = 0x000A; System.out.println("Hello" + c + "World!"); } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
4.不可能发生的事
来个简单点的填空题哈,在空格处填上适当的数,让下面的程序能输出“Hello World!”。
Java code:
Java code
public class Test4 { public static void main(String[] args) { int num = _____________; if (num < 0 && num == Math.abs(num)) { System.out.println("Hello World!"); } } }
填入:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
5,模棱两可的方法重载
invoke有两个重载的方法,一个是Object作为参数,另一个是int[]作为参数,看看下面的程序会输出什么?
Java code:
Java code
public class Test5 { public static void main(String[] args) { invoke(null); } private static void invoke(Object obj) { System.out.println("Object"); } private static void invoke(int[] nums) { System.out.println("Arrays"); } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
6,Number引起的计算错误
Number是众多数值类型的抽象父类,难道用它会引发计算错误?!看看下面的程序会输出什么?
Java code:
Java code
public class Test6 { public static void main(String[] args) { Number num = 12345 + 5432l; System.out.println(num.intValue()); } }
Output:
第二篇
下面的几个程序会输出什么?先不要上机哦!!!
1.输出:
Java code:
Java code
public class Test3 { public static void main(String[] args) { Parrent p = new Parrent(); Parrent c = new Child(); System.out.println(p.getName()); System.out.println(c.getName()); } } class Parrent { public static String getName() { return "Parrent"; } } class Child extends Parrent { public static String getName() { return "child"; } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
2.输出:
Java code:
Java code
public class Test { public static void main(String[] args) { for(int i = 0; i <= 10; i++) Integer k = new Integer(i); System.out.println( "Java Puzzlers "); } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
3
请补全 i 的声明(要求:i 不允许为 float、double、Float 和 Double 类型)让其能输出“Hello World”。
Java code:
Java code
public class Test { public static void main(String[] args) { fill here ; if (i != i +0) { System.out.println("hello world"); } } }
填入:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
4.请问以下程序的输出结果是什么?
Java code:
Java code
import java.math.BigInteger; public class Test { public static void main(String[] args) { BigInteger one = new BigInteger( "1 "); BigInteger two = new BigInteger( "2 "); BigInteger three = new BigInteger( "3 "); BigInteger sum = new BigInteger( "0 "); sum.add(one); sum.add(two); sum.add(three); System.out.println(sum.toString()); } }
输出:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
5. 请将下面程序中的空格补全(要求见程序中)
// 忽略 import 语句
Java code:
Java code
public class Test { public static void main(String[] args) { List <String> list = new ArrayList <String> (); list.add( "d "); list.add( "c "); list.add( "c "); list.add( "a "); list.add( "a "); list.add( "b "); list.add( "b "); list = removeDuplicate(list); // 输出的结果应是“d c a b ” for(String str : list) { System.out.print(str + " "); } } /** * 方法功能:移除 List 中重复的元素,并保持原有的顺序 */ public static <T> List <T> removeDuplicate(List <T> list) { // 把空格处完善 Return new ArrayList<T> (new LinkedHashSet<T>(list))___________________; } }
填入:
第三篇
1. 请问以下程序会输出什么?
Java code:
Java code
public class Part { public static void main(String[] args) { int num = 32; System.out.println(num >>= 32); } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
2. 程序会输出什么呢?
Java code:
Java code
public class Part { public static void main(String[] args) { int j = 0; for (int i = 0; i < 100; i++) { j = j++; } System.out.println(j); } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
3. 程序输出什么?
Java code:
Java code
public class Part { public static void main(String[] args) { boolean b = true?false:true == true?false:true; System.out.println(b); } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
4.继续输出什么?
Java code:
Java code
public class Part { public static void main(String[] args) { List<String> list = new ArrayList<String> (); list.add("Happy"); list.add("Birthday"); list.add("to"); list.add("you"); for (Iterator i = list.iterator(); i.hasNext()) { String s = i.next(); System.out.println(s); } } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
5.输出神马?
Java code:
Java code
public class Part { public static void main(String[] args) { Queue<Integer> q = new PriorityQueue<Integer>(20, new Comparator<Integer>() { public int compare(Integer i1, Integer i2) { int result = i1 % 2 - i2 % 2; if (result == 0) { return i1 - i2; } else return result; } }); for (int i = 0; i < 20; i++) { q.add(i); } for (int i = 0; i < 20; i++) { System.out.println(q.poll()); } } }
Output:
=====★==我==是==题==目==间==的==小==分==隔==符==★=====
6. 请在以下程序段中的空白处补上最简洁的语句,在程序运行后会输出运行时的时间。
显示格式为:yyyy-MM-dd HH:mm:ss
Java code:
Java code
public class Part { public static void main(String[] args) { System.out.println(formatTime(System.currentTimeMillis())); } private static char[] formatTime(long currentTimeMillis) { return 这儿填什么; } }
相关文章推荐
- 将以前的一些编程作品整理了一下
- 一些有趣的题目(整理版)
- 【自然框架 免费视频】资源角色的思路介绍(整理了一下以前帖子的目录,请刷新)
- 【自然框架 免费视频】资源角色的思路介绍(整理了一下以前帖子的目录,请刷新)
- Kali信息收集系列:(都是我以前的笔记整理了一下,就没加水印,习惯就好)
- 谈谈一些有趣的CSS题目(十五)-- 谈谈 CSS 关键字 initial、inherit 和 unset
- 聊聊高并发(三十七)整理一下并发基础中的一些知识点
- 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型
- UILibrary 一些 UI 相关的 View、Drawable 等整理了一下
- 谈谈一些有趣的CSS题目(十)-- 结构性伪类选择器
- 这个题目我重写了好几遍,虽然思路很清晰,但始终没有写出来,借鉴了一下别人的,日后再研究
- 谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?
- 链表中一些有趣的小题目总结
- 旁若无人 写一些东西 整理一下思路
- 闲来无事做,把最近碰到的一些小面试题整理一下,单例模式,冒泡排序,递归
- 体验C#——关于循环语句的一些有趣题目的实现
- 2008年七月九号,读博士的第三天,开始整理,因该说重拾以前丢的东西,到旧书店买了一些书
- 为找工作的同学提供一些大公司的招聘地址。都是本人花时间整理的。一定要看哟:)
- 关于mysql中一些有趣的题目
- 论坛上别人整理的一些编程技巧(觉得实用)