Questions tagged «string-interning»

7
什么是Java String实习?
Наэтотвопросестьответына 堆栈溢出нарусском:Чтотакое实习икакимпользоваться 什么是Java中的String Interning,什么时候应该使用它,为什么?

14
什么时候应该在String文字上使用String的内部方法
根据String#intern(),intern如果在字符串池中找到字符串,则该方法应该从字符串池返回字符串,否则,将在字符串池中添加新的字符串对象,并返回此字符串的引用。 所以我尝试了这个: String s1 = "Rakesh"; String s2 = "Rakesh"; String s3 = "Rakesh".intern(); if ( s1 == s2 ){ System.out.println("s1 and s2 are same"); // 1. } if ( s1 == s3 ){ System.out.println("s1 and s3 are same" ); // 2. } 我原以为s1 and s3 are same将在s3被实习生时打印,并且s1 and s2 …

4
为什么(仅)某些编译器对相同的字符串文字使用相同的地址?
https://godbolt.org/z/cyBiWY 我可以'some'在MSVC生成的汇编代码中看到两个文字,但是只有一个带有clang和gcc。这导致代码执行的结果完全不同。 static const char *A = "some"; static const char *B = "some"; void f() { if (A == B) { throw "Hello, string merging!"; } } 谁能解释这些编译输出之间的区别和相似之处?为什么即使不要求优化,clang / gcc也会优化某些内容?这是某种不确定的行为吗? 我还注意到,如果将声明更改为以下所示,则clang / gcc / msvc根本不会"some"在汇编代码中保留任何声明。为什么行为不同? static const char A[] = "some"; static const char B[] = "some";
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.