有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么Java允许将字符串文本分配给字符串对象?

String是java中的一个类。在声明和分配字符串时,正确的说法是string name=“Paul”,但要从java类实例化一个对象,我们需要string name=new string()把名字作为一个对象,我想知道为什么我们可以给这个对象分配一系列字符“保罗”。这是在什么概念下工作的,它是如何工作的


共 (2) 个答案

  1. # 1 楼答案

    这是因为隐式字符串-"..."也被视为对象

    在封面下,JVM在所谓的String pool中寻找类似的“对象”,然后如果在那里找到它,它将返回该对象(而不是创建新对象),否则将创建新对象并将其放入字符串池

    这是为了提高内存效率,所以新字符串(“Paul”)不一样

    这是可能的,因为我们知道,字符串在Java中是不可变的

    你可以阅读更多关于搜索关键字“字符串池”的行为

  2. # 2 楼答案

    在Java代码中

    "Paul"
    

    是字符串文字和

    String name
    

    类型为String的变量,名称为name.

    Java Language Specifications, section 3.10.5声明:

    A string literal is always of type String

    由于123int文字,而int numberint类型的变量,名为number,以下两条语句都是合法的,因为赋值的左侧和右侧的类型匹配:

    int number = 123;
    String name = "Paul";