在没有新运算符的情况下创建字符串时会创建对象吗?

时间:2018-12-22 14:08:17

标签: java string object

//Index.cshtml

@model Microsoft.AspNetCore.Http.HttpRequest

@section meta  {

    @if (Model.Path.Value.Contains("pathName"))
    {
        MyWebsite.Models.DatabseContext db = new MyWebsite.Models.DatabseContext();
        int itemID = int.Parse(Model.Path.Value.Substring(10, Model.Path.Value.Length - 10));
        Item item = db.Items.Find(itemID);

        <meta property="og:title" content="@item.Name" />
        <meta property="og:description" content="@item.Description" />
        <meta property="og:url" content="https://mywebsite.com/@Model.Path.Value.Substring(1)" />
        <meta property="og:image" content="@item.ImageURL" />
    }
}
  • 这里class Help { public static void main(String[] args) { String s1 = "hello"; String s2 = "hello" + "world"; } } 是对象引用变量,还是我们在第一条语句中创建了一个对象?
    • 如果答案为是,那么在第二个语句中将创建多少个对象?

1 个答案:

答案 0 :(得分:1)

不。使用new运算符时,始终会创建一个新的String对象。如果您通常不用新运算符来创建String,它将从字符串池中返回一个现有对象(如果已经存在),否则将创建一个新对象

请参阅此example以获取更多信息