相关疑难解决方法(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#的Hidden Features之后,我想知道,Java的一些隐藏功能是什么?

java

295
推荐指数
88
解决办法
21万
查看次数

Java类名中的有效字符

Java类名中有哪些字符有效?还有哪些其他规则管理Java类名称(例如,Java类名称不能以数字开头)?

java unicode class invalid-characters naming-conventions

68
推荐指数
4
解决办法
14万
查看次数

哪些声明有效?

选择三个正确的答案(有效的声明)。

(一种) char a = '\u0061';

(b) char 'a' = 'a';

(C) char \u0061 = 'a';

(d) ch\u0061r a = 'a';

(e) ch'a'r a = 'a';

答案:(a),(c)和(d)

书:

Java SCJP认证程序员指南(第三版)

有人可以解释一下选项(c)和(d)的原因吗,因为IDE(IntelliJ IDEA)用红色的文字显示了它:

无法解析符号“ u0063”

如IntelliJ IDEA所示

java ide unicode scjp intellij-idea

5
推荐指数
1
解决办法
101
查看次数

在Java中检查符号®字符串的正确方法是什么?

我想检查字符串是否包含受限符号(®).截至目前,我这样做:

if(mystr.contains("®"))
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但我真的不认为在实际代码中使用受限制的符号是最好的方法.检查字符串是否包含受限符号的另一种方法是什么?

java string substring character special-characters

3
推荐指数
1
解决办法
90
查看次数

java中“\uf8ff”是什么意思?

一直在到处寻找,但找不到答案。如果我没有记错的话,它一定与“utf-8”有关,但仍然不知道它是什么。

java unicode utf-8

3
推荐指数
1
解决办法
8166
查看次数