相关疑难解决方法(0)

为什么在允许某些Unicode字符的注释中执行Java代码?

以下代码生成输出"Hello World!" (不,真的,试试吧).

public static void main(String... args) {

   // The comment below is not a typo.
   // \u000d System.out.println("Hello World!");
}
Run Code Online (Sandbox Code Playgroud)

原因是Java编译器将Unicode字符解析\u000d为新行并转换为:

public static void main(String... args) {

   // The comment below is not a typo.
   //
   System.out.println("Hello World!");
}
Run Code Online (Sandbox Code Playgroud)

从而导致评论被"执行".

由于这可以用来"隐藏"恶意代码或恶意程序员可以设想的任何东西,为什么在评论中允许它

为什么Java规范允许这样做?

java unicode comments

1326
推荐指数
7
解决办法
7万
查看次数

你应该在Java/C#中使用国际标识符吗?

C#和Java几乎允许在类名,方法名,局部变量等中使用任何字符.使用非ASCII字符,测试不良编辑器和分析工具的界限并使某些人难以阅读是不好的做法,还是美国的傲慢是反对的唯一论据?

c# java coding-style

23
推荐指数
5
解决办法
2万
查看次数

Perl标识符中允许哪些字符?

我正在做正则表达式作业,其中一个问题是:

在线使用语言参考手册确定Java,Python,Perl和C的整数数字常量和标识符的正则表达式.

我在正则表达式上不需要帮助,我只是不知道Perl中的标识符是什么样的.我发现页面描述了C,PythonJava的有效标识符,但我找不到任何关于Perl的内容.

编辑:澄清一下,找到文档很容易(比如谷歌搜索python标识符).我不参加"谷歌搜索"课程.

unicode perl identifier

10
推荐指数
3
解决办法
4959
查看次数

标签 统计

java ×2

unicode ×2

c# ×1

coding-style ×1

comments ×1

identifier ×1

perl ×1