栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

字符串实习在Java 7+中如何工作?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字符串实习在Java 7+中如何工作?

声明时,java中有一个叫做String Memory Pool的东西:

String str1="abc";

它去那个内存池而不是堆。但是当你写:

String str2=new String("abc");

如果再次输入,它将在堆上创建完整的对象。

String str3 = "abc";

它不会在池上创建更多对象,它将检查池中是否存在此文字,并将其分配给该对象。但是写:

String str4 = new String("abc");

将再次在堆上创建一个新对象

关键是:

一个新对象将始终在您不断编写的时候在堆上创建多次:

new String("abc");

但是,如果您不使用关键字new继续直接分配字符串,则只会从内存池中引用它(如果内存池中不存在它,则会创建它)

intern()
方法查找字符串是否在内存池中(如果不是)将其添加到内存池并返回对其的引用。因此,使用此方法后,您的String引用不会指向堆上的任何对象,而是指向String内存池中的一个对象(还要注意,该内存池仅包含唯一的字符串)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595769.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号