字符串编译时常量(internalized-strings)和文字可以与==进行比较,因为如果它们在某种程度上相等,它们在编译时被赋予相同的引用。
这是否意味着编译由n个字符串文字组成的代码需要n log(n)时间来编译?
我在这里提出这个问题是因为有人可能已经知道了答案,而且我不确定我是否可以编写一个以可靠,可重复或重要的方式测量效果的测试。或者说这个测试会反映现实世界的限制等。
我将发布我可以提出的任何测试用例,请随时提出建议,我会尽快实现它们。
答案 0 :(得分:1)
代码中的字符串常量/文字是否会大大减慢编译速度?
没有
字符串编译时常量(internalized-strings)和文字可以与==进行比较,因为如果它们在某种程度上相等,它们在编译时被赋予相同的引用。
不,他们不是。它们在编译时汇集到.class文件的常量区域,并且在分配引用时,它们在类加载时实习。
这是否意味着编译由n个字符串文字组成的代码需要n log(n)时间来编译?
没有。这里没有固有的 O(N log(N))过程。在任何明智的实现中,通过哈希表汇集 O(1),并实习同上。
[当然可能构建 O(N log(N))或的编译器或intern()
方法O(N ^ 3)或更糟,但问题中的任何内容都不包括。]