String Table
时间: 2023-07-19 07:57:52 浏览: 102
String Table(字符串表)是Windows编程中的一种资源类型,它存储了应用程序中使用的字符串。应用程序可以使用字符串表来避免硬编码字符串,使得程序的本地化更加方便。在Visual Studio中,可以通过资源文件编辑器来创建和编辑字符串表,每个字符串都有一个唯一的ID,应用程序可以通过这个ID来访问相应的字符串。在程序运行时,可以调用LoadString函数来将字符串从字符串表中加载到内存中,以便应用程序使用。
相关问题
String TABLE
回答: String TABLE是指Java中的StringTable,它是用来存储字符串常量的一个数据结构。在Java中,字符串常量池是存储字符串常量的地方,而StringTable则是字符串常量池的一部分。StringTable中存储的是在编译期间确定的字符串常量,它们是不可变的。\[1\]
对于通过加法操作的字符串,如果使用StringBuffer、StringBuilder等操作,会创建一个新的String对象,而不会进入StringTable。只有通过String类的intern方法,将变量添加到StringTable中,才能使其进入StringTable。例如:String m = "1"; String n = "2"; String k = m + n; System.out.println(k.intern() == "12"); 这样的操作可以使得"k"进入StringTable。\[2\]
在代码中,如果使用new String()的方式创建字符串对象,会在堆中创建一个新的对象,而不会进入StringTable。例如:String b = new String("123"); 这样的操作会创建一个新的对象,而不是从StringTable中获取。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [String及StringTable(二):java中的StringTable](https://blog.csdn.net/dhaibo1986/article/details/107943519)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
string table
String table是Java虚拟机中的一个数据结构,用于存储字符串常量。它是一种特殊的哈希表,用于实现字符串的复用。当我们使用字符串字面量创建String对象时,JVM会将这些字符串常量存储在String table中。这样,如果我们再次使用相同的字符串字面量创建String对象,JVM会直接从String table中获取已经存在的字符串对象,而不会再创建新的对象。这样可以减少内存的使用,提高程序的性能。\[1\]
然而,如果我们使用"+"或其他方法来拼接字符串,生成的新字符串将会单独存在于堆区,而不会被添加到String table中。因此,String table的复用是有限的。根据JVM官方的统计,Java应用内存中的字符串大约占总内存的25%,其中有13.5%的字符串是重复的。\[2\]
需要注意的是,当我们使用new String()的方式创建字符串对象时,无论字符串常量是否存在于String table中,都会在堆中创建一个新的字符串对象。这是因为new关键字会强制创建一个新的对象,而不会使用String table中已有的对象。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [String及StringTable(二):java中的StringTable](https://blog.csdn.net/dhaibo1986/article/details/107943519)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]