随笔分类 -  emanual_谜题_字符谜题(11-23)

摘要:下面的程序将打印一个单词,其第一个字母是由一个随机数生成器来选择的。请描述该程序的行为: 乍一看,这个程序可能会在一次又一次的运行中,以相等的概率打印出Pain,Gain或 Main。看起来该程序会根据随机数生成器所选取的值来选择单词的第一个字母:0选M,1选P,2选G。谜题的题目也许已经给你提供了 阅读全文
posted @ 2018-10-23 23:22 尐鱼儿 阅读(193) 评论(0) 推荐(0) 编辑
摘要:本谜题利用了Java编程语言中一个很少被人了解的特性。请考虑下面的程序将会做些什么? 这是一个有点诡异的问题。该程序将不会做任何特殊的事情,而是直接打印iexplore::maximize。在程序中间出现的URL是一个语句标号(statement label)[JLS 14.7]后面跟着一行行尾注释 阅读全文
posted @ 2018-10-23 23:21 尐鱼儿 阅读(117) 评论(0) 推荐(0) 编辑
摘要:下面的程序所要做的事情正是前一个谜题所做的事情,但是它没有假设斜杠符号就是分隔文件名组成部分的符号。相反,该程序使用的是java.io.File.separator,它被指定为一个公共的String域,包含了平台相关的文件名分隔符。那么,这个程序会打印出其正确的、平台相关的类文件名吗? 这个程序根据 阅读全文
posted @ 2018-10-23 23:21 尐鱼儿 阅读(147) 评论(0) 推荐(0) 编辑
摘要:下面的程序用一个方法对字符进行了分类。这个程序会打印出什么呢? 如果你猜想该程序将打印LETTER UNKNOWN NUMERAL,那么你就掉进陷阱里面了。这个程序连编译都通不过。让我们再看一看相关的部分,这一次我们用粗体字突出注释部分: 正如你之所见,注释在包含了字符*/的字符串内部就结束了,结果 阅读全文
posted @ 2018-10-23 23:20 尐鱼儿 阅读(149) 评论(0) 推荐(0) 编辑
摘要:下面的程序被设计用来打印它的类文件的名称。如果你不熟悉类字面常量,那么我告诉你Me.class.getName()将返回Me类完整的名称,即“com.javapuzzlers.Me”。那么,这个程序会打印出什么呢? 该程序看起来会获得它的类名(“com.javapuzzlers.Me”),然后用“/ 阅读全文
posted @ 2018-10-23 23:20 尐鱼儿 阅读(147) 评论(0) 推荐(0) 编辑
摘要:下面的程序从一个字节序列创建了一个字符串,然后迭代遍历字符串中的字符,并将它们作为数字打印。请描述一下程序打印出来的数字序列: 首先,byte数组用从0到255每一个可能的byte数值进行了初始化,然后这些byte数值通过String构造器被转换成了char数值。最后,char数值被转型为int数值 阅读全文
posted @ 2018-10-23 23:19 尐鱼儿 阅读(156) 评论(0) 推荐(0) 编辑
摘要:下面的是一个合法的Java程序吗?如果是,它会打印出什么呢? 这当然是一个合法的Java程序!这不是很显而易见吗?它会打印Hello World。噢,可能是不那么明显。事实上,该程序根本让人无法理解。每当你没必要地使用了一个Unicode转义字符时,都会使你的程序的可理解性更缺失一点,而该程序将这种 阅读全文
posted @ 2018-10-23 23:18 尐鱼儿 阅读(231) 评论(0) 推荐(0) 编辑
摘要:下面的程序是对一个老生常谈的例子做出了稍许的变化之后的版本。那么,它会打印出什么呢? 这个谜题看起来相当简单。该程序包含了两条语句,第一条打印Hell,而第二条在同一行打印。 world,从而将两个字符串有效地连接在了一起。因此,你可能期望该程序打印出Hello world。但是很可惜,你犯了错,实 阅读全文
posted @ 2018-10-23 23:17 尐鱼儿 阅读(214) 评论(0) 推荐(0) 编辑
摘要:行分隔符(line separator)是为用来分隔文本行的字符或字符组合而起的名字,并且它在不同的平台上是存在差异的。在Windows平台上,它是CR字符(回车)和紧随其后的LF字符(换行)组成的,而在UNIX平台上,通常单独的LF字符被当作换行字符来引用。下面的程序将这个字符传递给了printl 阅读全文
posted @ 2018-10-23 23:17 尐鱼儿 阅读(139) 评论(0) 推荐(0) 编辑
摘要:下面的程序使用了两个Unicode的转义字符,它们是用其十六进制代码来表示Unicode字符。那么,这个程序会打印什么呢? 对该程序的一种很肤浅的分析会认为它应该打印出26,因为在由两个双引号"a\u0022.length()+\u0022b"标识的字符串之间总共有26个字符。 稍微深入一点的分析会 阅读全文
posted @ 2018-10-23 23:16 尐鱼儿 阅读(130) 评论(0) 推荐(0) 编辑
摘要:George Orwell的《畜牧场(Animal Farm)》一书的读者可能还记得老上校的宣言:“所有的动物都是平等的。”下面的Java程序试图要测试这项宣言。那么,它将打印出什么呢? 对该程序的表面分析可能会认为它应该打印出Animal are equal: true。毕竟,pig和dog都是f 阅读全文
posted @ 2018-10-23 23:15 尐鱼儿 阅读(168) 评论(0) 推荐(0) 编辑
摘要:这个谜题要问的是一个悦耳的问题,下面的程序将打印什么呢? 可能大家希望这个程序打印出ABC easy as 123。遗憾的是,它没有。如果你运行它,就会发现它打印的是诸如ABC easy as [C@16f0472之类的东西。为什么这个输出会如此丑陋? 尽管char是一个整数类型,但是许多类库都对其 阅读全文
posted @ 2018-10-23 23:14 尐鱼儿 阅读(193) 评论(0) 推荐(0) 编辑
摘要:下面的程序将打印出什么呢? 你可能会认为这个程序将打印HaHa。该程序看起来好像是用两种方式连接了H和a,但是你所见为虚。如果你运行这个程序,就会发现它打印的是Ha169。那么,为什么它会产生这样的行为呢? 正如我们所期望的,第一个对System.out.print的调用打印的是Ha:它的参数是表达 阅读全文
posted @ 2018-10-23 23:13 尐鱼儿 阅读(123) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示