Java隐藏代码

不久前,我遇到了字符串中不可见字符的问题。 因为它们是不可见的,所以它们确实会引起混乱。
String a = "Hello\u200e";String b = "Hello\u200f";System.out.println('\'' + a + "' and '" + b + "' are length "+ a.length() + " and " + b.length() + ", equals() is " + a.equals(b));

版画

'Hello?' and 'Hello?' are length 6 and 6, equals() is false

不可见的标识符

想象一下我对发现您可以在Java:P中的标识符中使用不可见字符的反应。 这些字符不能出现在Java标识符的开头,但可以出现在其他任何位置。

System.out.println("String _\u200e = \"Hello \";");System.out.println("String _\u200f = \"World\";");System.out.println("String _\u200e\u200f = \" !!\";");System.out.println("System.out.println(_\u200e+_\u200f+_\u200e\u200f);");

版画

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

运行时打印

Hello World !!

因此,我们有三个标识符都显示相同的标识符,因为它们的名称中具有不同的不可见字符!

令人惊讶的是,此代码编译,运行并打印了可能在标识符中但未启动的所有字符。 该代码包含\ u202e ,它确实使代码的显示混乱。

for (char c??h = 0; c??h < Character.MAX_VALUE; c??h++)if (Character.isJavaIdentifierPart(c??h) && !Character.isJavaIdentifierStart(c??h))System.out.printf("%04x <%s>%n", (int) c??h, "" + c??h);

参考: Vanilla Java博客上来自我们的JCG合作伙伴 Peter Lawrey的隐藏代码 。


翻译自: https://www.javacodegeeks.com/2012/09/java-hidden-code.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

201521123052《Java程序设计》第5周学习总结

1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点。 1.2 可选&#xff1a;使用常规方法总结其他上课内容。 学习了更多markdown的知识 参考资料: 百度脑图 XMind 2. 书面作业 作业参考文件下载 1.代码阅读&#xff1a;Child压缩包内源代码package parent;publi…

Deepin安装Curl的方法

Deepin安装Curl的方法 以Deepin为例&#xff0c;只需一条命令即可&#xff1a; sudo apt-get install curl libcurl3 libcurl3-dev php5-curlposted on 2017-09-15 23:22 MissA-VeryGood 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/MissA-VerGood/p/752911…

亚信联创java面试题_亚信联创面试题及答案

1. Vector & ArrayList1) Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe)&#xff0c;而ArrayList的方法不是&#xff0c;由于线程的同步必然要影响性能&#xff0c;因此,ArrayList的性能比Vector好。2) 当Vector或ArrayList中的元素超过它的初始大小时,…

HTTP协议之http状态码详解

什么是HTTP状态码 HTTP状态码的作用是&#xff1a;Web服务器用来告诉客户端&#xff0c;发生了什么事。 状态码位于HTTP Response 的第一行中&#xff0c;会返回一个”三位数字的状态码“和一个“状态消息”。 ”三位数字的状态码“便于程序进行处理&#xff0c; “状态消息”更…

有用的Ant构建标签

问题&#xff1a; 如何在ant文件中执行以下任务&#xff1f; 制作zip文件。 运行命令。 将文件复制到远程计算机。 在远程Linux机器上运行命令。 打开输入框并响应输入值。 拨打蚂蚁电话。 答案&#xff1a; 1.制作zip文件&#xff1a; 以下是在ant中制作zip文件的xml…

poj-2955-Brackets-区间DP

poj-2955-Brackets-区间DP BracketsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9014 Accepted: 4829Description We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a regular brackets sequence,if s …

Python调用(运行)外部程序

在Python中可以方便地使用os模块运行其他的脚本或者程序&#xff0c;这样就可以在脚本中直接使用其他脚本&#xff0c;或者程序提供的功能&#xff0c;而不必再次编写实现该功能的代码。为了更好地控制运行的进程&#xff0c;可以使用win32process模块中的函数。如果想进一步控…

Java中已检查和未检查的异常

Java有两种类型的异常-已检查和未检查。 简而言之&#xff0c;选中的是指开发人员可以从异常中合理恢复的情况&#xff0c;而未选中的异常是无法处理的编程错误。 本文介绍了何时使用哪种。 但这不是那么简单–受检查的异常使代码变得“丑陋”。 它们迫使开发人员编写try / cat…

CCF - 201403-3 - 命令行选项

问题描述 试题编号&#xff1a;201403-3试题名称&#xff1a;命令行选项时间限制&#xff1a;1.0s内存限制&#xff1a;256.0MB问题描述&#xff1a; 问题描述请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空…

java 枚举 values_JAVA 枚举运用一 values方法

importjava.lang.reflect.Method;importjava.lang.reflect.Type;importjava.util.Set;import java.util.*;public classEnumJavaClass {public enumEnumClass{One("参数变量枚举一"),Two("参数变量枚举二"),Three("参数变量枚举三");privateStri…

telnet测试端口是否正常打开

点击计算机的开始菜单--》运行 &#xff0c;输入CMD命令&#xff0c;然后确定。打开cmd命令行。 输入telnet测试端口命令&#xff1a; telnet IP 端口 或者 telnet 域名 端口 回车 如果端口关闭或者无法连接&#xff0c;则显示不能打开到主机的链接&#xff0c;链接失败 端口…

Linux历史,安装,分区,版本

Linux 历史 1970年是 UNIX元年&#xff0c;这一年 Kenneth Lane Thompson 和 Dennis Ritchie 合作编写了UNIX系统。Stallman 发起了GNU 计划&#xff0c;他本人开发了Emacs, GCC, GDB.Minix&#xff1a;教学用的类UNIX系统&#xff0c;由于UNIX是收费的且价格昂贵&#xff0c;因…

放弃Eclipse Juno

在上一个博客中&#xff0c;我发布了有关Eclipse 4.2 Juno设置的信息。 万一我需要重新安装其他东西&#xff0c;也可以作为参考。 当时我没有谈论的是我与Juno共同遇到的问题。 我以为这是我自己的安装程序&#xff0c;很麻烦&#xff0c;但是此后并没有太大改善。 我遇到的主…

Java instead of 用法_我又不是你的谁--java instanceof操作符用法揭秘

背景故事《曾经最美》是朱铭捷演唱的一首歌曲&#xff0c;由陈佳明填词&#xff0c;叶良俊谱曲&#xff0c;是电视剧《水晶之恋》的主题曲。歌曲时长4分28秒。 歌曲歌词&#xff1a;看不穿你的眼睛藏有多少悲和喜像冰雪细腻又如此透明仿佛片刻就要老去整个城市的孤寂不止一个你…

3.26

http://codeforces.com/gym/101196/attachments A题 B题 题意&#xff1a;一群人玩桌上足球(>4人)&#xff0c;分成黑白两队&#xff0c;每队有进攻和防守两名玩家&#xff0c;如果有一方失败则失败方的防守坐到等候席的结尾、进攻被流放到防守区再上来一个人作为进攻方。而…

scala akka通信机制

https://www.2cto.com/kf/201701/587514.html转载于:https://www.cnblogs.com/rocky-AGE-24/p/7542874.html

JUnit通过失败测试案例

为什么要建立一种预期测试失败的机制&#xff1f; 有一段时间&#xff0c;人们会希望并期望JUnit Test案例失败。 尽管这种情况很少见&#xff0c;但确实发生了。 我需要检测JUnit测试何时失败&#xff0c;然后&#xff08;如果期望的话&#xff09;通过而不是失败。 具体情况是…

CentOS6.5安装MySQL5.7详细教程

CentOS6.5安装MySQL5.7详细教程 注&#xff1a;文中所写的安装过程均在CentOS6.5 x86下通过测试 主要参考博文&#xff1a; https://segmentfault.com/a/1190000003049498 http://www.th7.cn/db/mysql/201601/175073.shtml 1.检测系统是否已经安装过mysql或其依赖&#xff0c;若…

cmake 查看编译命令,以及在vscode中如何使用cmke

通过设置如下配置选项&#xff0c;可以生成compile_commands.json 文件&#xff0c;记录使用的编译命令 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)获得现有模块列表 cmake --help-module-list查看命令文档 cmake --help-command find_file查看模块的详细信息 cmake --help-mo…

php学习八:封装

一&#xff1a;在php中&#xff0c;用class关键字来创建一个类&#xff0c;即进行封装&#xff1b;在类里面有成员属性和方法行为组成&#xff1a; 1.成员属性:用关键字var来声明,可以给初始值也可以不给;现在var废弃&#xff0c;用public来声明&#xff0c;public为共有属性&a…