网站开发服务费计入哪个科目,wordpress 深度优化,开发app软件需要多少费用,皮肤科医生免费问诊五皇后问题 java我们有机会接触到一些最奇怪的Java难题 即使是最有经验的Java开发人员#xff0c;也会在这篇文章中发现令人困惑的问题。 或者至少是有趣的#xff08;绝对不公平#xff09;。 在经历了Java Deathmatch冒险之后#xff0c;我们决定这次发布一系列不同的问… 五皇后问题 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 ASCII4.不要放弃 __和_为什么是不同的变量 您可能已经猜对了。 答案是使用隐藏的字符作为合法的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