五皇后问题 java

我们有机会接触到一些最奇怪的Java难题

即使是最有经验的Java开发人员,也会在这篇文章中发现令人困惑的问题。 或者至少是有趣的(绝对不公平)。 在经历了Java Deathmatch冒险之后,我们决定这次发布一系列不同的问题,着重强调您可以使用Java进行的一些不寻常且古怪的事情。 对于我们之前的测验结果,您可以查看这篇文章 ,看看是否可以解决5个开发人员中有4个出错的问题。

在家中(或办公室)尝试一下。 但是,请不要在现实的Java应用程序中使用它! 除非您试图诱骗某个人,否则一切都会顺利进行。 非常感谢Peter Lawrey与我们分享了大多数这些问题。 解决方案可在本文的底部找到,但请尝试诚实地尝试一下,看看您能解释多少。

问题是……

1.右括号被高估了

奇怪的是,下面的代码可以完美地编译。 但是它打印什么?

import static java.lang.Character.getNumericValue;public class BigCharacters {public static void main(String... a‮) {for (char c‮ = 1; c‮ > 0; c‮++)if (getNumericValue(c‮) > 50)System.out.println(c‮ + ": " + getNumericValue(c‮));}
}

注意: getNumbericValue返回Unicode字符表示的数字int值。 如果字符没有数字值,则返回-1。

2.生命,宇宙和一切的答案

ew 我们在这个问题上有一个右括号。 但是,以下代码段输出了什么? 又为什么呢

Integer a = 42;
Integer b = 42;
System.out.println(a == b);
Integer c = 666;
Integer d = 666;
System.out.println(c == d);

3.字符运算

继续。 您能解释一下这里发生了什么吗?

char ch = '0';
ch *= 1.1;
System.out.println(ch);

可能的选择:

  • 编译器错误
  • 运行时错误
  • 列印0
  • 版画4

4.不要放弃!

这就是这个世界。 这里发生了什么?

String _‎ = "Hello ";
String _‏ = "World";
String _‎‏ = " !!";
System.out.println(_‎+_‏+_‎‏);

剧透警告:它打印出“ Hello World !!”

¯\ _(ツ)_ /¯

5.这个问题是自我意识的

打印WTF的最小值是多少? x的类型取决于您。

if (x != (x += 0.0f)) System.out.println("WTF");

解决方案

1.右括号被高估了

首先,一些背景。 有一个用\ u202e编码的字符,该字符用于从右到左的语言,如希伯来语或阿拉伯语,并使其余的行以相反的顺序显示。 这是一个零宽度的字符,不仅如此,而且用作Java标识符也是有效的。 尝试复制代码段,在光标周围移动,然后您会注意到它在代码中的显示位置。

除了RTL语言支持之外,如果您想对某人恶作剧,它也非常有用。 将封闭括号替换为后面带有该字符的开放括号以反转该行的其余部分–然后查看接下来会发生什么。 如果您决定这样做,请向我们发送受害者面部的照片。 :)

2.生命,宇宙和一切的答案

整数是对象,这与原始类型的整数相反。 但是,此代码段:

Integer a = 42;
Integer b = 42;
System.out.println(a == b);
Integer c = 666;
Integer d = 666;
System.out.println(c == d);

打印出第一个比较结果为“ true”,下一个为“ false”。 这对于int无效,但是由于Integer是独立的对象,因此c和d不是同一对象是有意义的。 但是为什么a == b?

出于性能原因,Integer类型保留所有对象的缓存,其值在-128到127范围内。 因此,当您在该范围内声明新变量时,实际上是在指同一对象。

3.字符运算

此代码段显示了4:

char ch = '0'; // ASCII for ‘0’ is 48
ch *= 1.1; // 48 x 1.1 is 52.8 which turns to 52 when cast to char
System.out.println(ch); // 52 represents ‘4’ in ASCII

4.不要放弃!

_,_和_为什么是不同的变量? 您可能已经猜对了。 答案是使用隐藏的字符作为合法的Java标识符传递。 您可以在此处直接在Peter Lawrey的博客上阅读有关它的更多信息。

5.这个问题是自我意识的

那么,什么使该表达式被评估为真呢?

if (x != (x += 0.0f)) System.out.println("WTF");

您可以使用任何String,并且(1 << 24)+ 1的int或long可以作为这些类型的最小值。 但是它们所有的最小值是Double.MIN_VALUE,当转换为浮点数时会四舍五入为0.0f。

最后的想法

希望您喜欢这些问题! 但是,如果您发现自己的代码库中的困惑者花费了太多时间,那可能就不理想了。 对于这种情况,我们已经为Java构建了Takipi 。 Takipi是一个Java代理,它收集解决生产错误所需的所有数据-无需遍历日志文件并尝试重新创建导致错误的状态。 它使您可以查看导致错误的变量值(遍及整个堆栈),并将其覆盖在代码中。

翻译自: https://www.javacodegeeks.com/2015/10/5-weird-java-questions-that-will-make-your-head-spin.html

五皇后问题 java

五皇后问题 java_Java的5个古怪问题相关推荐

  1. 【Java数据结构与算法】第五章 递归、迷宫回溯和八皇后问题

    第五章 递归 文章目录 第五章 递归 一.递归 1.概念 2.代码实现 3.递归的规则 二.迷宫回溯 1.要求 2.代码实现 三.八皇后问题 1.介绍 2.思路 3.代码实现 一.递归 1.概念 简单 ...

  2. 史上第一奇女子——五废五立的两朝皇后羊献容

    这是一个被漫漫史海有意湮没的充满传奇色彩的神秘女子,也是一个即使极端的道学家也不能抹煞她的存在的坚强女性,她遭遇的"忧逼折辱,终古未闻",而她在命运的作弄下,以超强的意志和技巧生存 ...

  3. 类的成员包含 java_Java 面向对象(十五)类的成员 之 内部类

    一.内部类 1.引入 类的成员包括: (1)属性:成员变量: (2)方法:成员方法: (3)构造器: (4)代码块: (5)内部类: 其中1.2是代表这类事物的特征: 其中3.4是初始化类和对象用的: ...

  4. 第五周实践项目8 8皇后问题的回溯求解_栈结构

    [全文] 回溯法是一种通用的搜索算法,几乎可以用于求解任何可计算的问题.算法的执行过程就像是在迷宫中搜索一条通往出口的路线,总是沿着某一方向向前试探,若能走通,则继续向前进:如果走不通,则要做上标记, ...

  5. 母牛生小牛java_Java实现:工厂有一头母牛,一年生一头小母牛,小母牛五年后可以生小牛,问20年工厂有多少头牛?...

    展开全部 public class CowCount { // 一头母牛cow 每年e69da5e6ba903231313335323631343130323136353331333361303637 ...

  6. Java 鸡翁一值钱五Java_Java案例5:斐波那契数列,百钱百鸡

    1.斐波那契数列(不死兔子) public class Fbql { public static void main(String[] args) { // TODO Auto-generated m ...

  7. pcap java_java解析Pcap文件获取五元组(可执行)

    [实例简介] java解析Pcap文件获取五元组(可运行) [实例截图] [核心代码] PcapTestZ └── PcapTestZ └── PcapTestZ ├── 111.206.37.193 ...

  8. 调停者模式 java_Java第五设计模式:中介(调停者)设计模式

    模式定义: 使用中介者模式来集中相关对象之间复杂的沟通和控制方式,使得这些对象不必相互明显引用.从而使它们可以较松散地耦合. 当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对 ...

  9. thrift序列化 java_JAVA RPC (五) 之thrift序列化RPC消息体

    让大家久等了.继续更新thrift序列化的消息体,下面我们一步一步的看一看thrift的rpc是怎么实例化消息体的. 首先我们先准备一个request文件 1 namespacejava bky2 s ...

最新文章

  1. 90行Python代码,让张小龙的微信地球转起来
  2. 2-16 HDO1106
  3. java中实现十六进制和二进制之间的相互转换
  4. python审批流系统_有赞移动关于权限与审批流程的标准化
  5. linux 解压缩一个文件夹下所有的压缩文件
  6. 《精解Windows8》——1.2 告别开始按钮进入“开始”屏幕时代
  7. Python 算法交易实验23 退而结网1
  8. 74-SSM项目实战前端开发
  9. MFC绘制bmp图片背景
  10. 使用八爪鱼工具爬取京东当前所有手机信息存入mysql
  11. Unity:通过脚本控制Shader中的Cutoff
  12. 从语言之争到年龄焦虑
  13. SAE助力南瓜电影7天内全面Severless
  14. agv机器人无人仓系统-仓库控制模块设计
  15. python输出中文加数字_Python实现阿拉伯数字加上中文数字
  16. python3 selenium web自媒体百家号企鹅号大鱼号acfun站,自动化上传视频以及经验总结分享
  17. 谷歌浏览器下图片缩放模糊失真
  18. 激活具有 eSIM 功能的消费类物联网设备的 4 种方法
  19. 初等数论 - 定理证明
  20. 谷歌5.5亿美元投资京东:乍看很壮观,细思然并卵

热门文章

  1. P4022-[CTSC2012]熟悉的文章【广义SAM,dp,单调队列】
  2. P3629-[APIO2010]巡逻【树的直径】
  3. jzoj4274-终章-剑之魂【位运算,贪心】
  4. ssl初一组周六模拟赛【2018.4.7】
  5. codeforces1559 D2. Mocha and Diana (Hard Version)(并查集+启发式合并+随机化)
  6. NWERC 2018——B.Brexit Negotiations
  7. 【SAM】差异(P4248)
  8. 【递归】桐桐的递归函数
  9. 21、java中的反射机制
  10. JavaFX UI控件教程(二十一)之Tooltip